dBfast - reloj dinamico
Filtrado por todos los mensajes 3.970 visitas 4 respuestas
Hola, necesito una ayudita... he hecho un progrma apara el control de entradas y salidas del personal de una empresa, en una ventana muestro el time() del sistema con la funcion time(6) pero queda estatica y no se ve el avance del reloj hasta que pulso clic en cualquier lado, deseo que el reloj avance en tiempo real... como podre hacer esto???
gracias
astergio desde colombia
| Asunto: | RE:reloj dinamico | | Autor: | Marcelo SP (22 intervenciones) | | Fecha: | 28/04/2007 13:43:28 |
Hola astergio
Seguramente estaras usando un codigo similar a este con el comando time() antes o despues de read save modal
do while .t.
read save modal
.....
.....
enddo
el comando read save modal hace que el programa espere alguna accion de parte del operador para continuar, por eso es que no actualiza el time hasta tanto on hagas algo y reinicie el loop do while. Lo que debes hacer es usar el comando "algo"=chkevent() como po ejemplo
do while .t.
@ 2,1 say time(6)
accion=chkevent()
if accion=XXX
.......
endif
.......
......
enddo
en este ejemplo el programa continua dando vueltas en el loop do while sin detenerse como en el anterior, y tu solo tienes que evaluar la variable, en este caso accion para saber que ha hecho el operador, consulta en la ayuda sobre chkevent().
Ten cuidado que fuentes usas para imprimir el time pues te puedes quedar sin memoria. Si usas un get y actualizas no tendras ese problema y queda muy prolijo, pues sino tendrias que limpiar la zona de pantalla donde lo imprimes para no quedarte sin memoria y verras un parpadeo no muy agradable
espero te sirva
Marcelo S.P.
Hola,
Siguiendo la estela de mi amigo Marcelo, te dire que para que no te quedes sin memoria deberas utilizar el comando @ 0,0 CLEAR TO 0,0 para redibujar el reloj con la función time().
Te recomiendo que cada vez que cambies el minutero utilices el comando CLEAR TO de esta forma nunca tendras problemas con la memoria.
Un Saludo
Ramon.
| Asunto: | RE:reloj dinamico | | Autor: | Marcelo SP (22 intervenciones) | | Fecha: | 03/05/2007 22:36:09 |
Si. Es asi como dice Ramon pero el borrado de pantalla previo a la reimpresion hace un parpadeo que personalmente no me gusta. Por eso recurri al @ x,x get variable y luego cambio la variable por el nuevo time y hago un update gets y el parpadeo no existe.
Cualquiera de las dos funciona
Suerte
Marcelo
Yo en el reloj que tengo del programa HoraSoft es de la siguiente forma:
@ 1,27 CLEAR to 9,65
nSaveSay = SAYVIDEO()
SET SAY VIDEO TO 121
@ 1,27 SAY "&Viewtimer." FONT 15
SET SAY VIDEO TO nSaveSay
Lo podeis ver descargando el programa desde mi página y ejecutando el reloj que se adjunta.
Un Saludo a todos. |