El mantener actulizada la fecha y hora en pantalla es un uso basico del timer. Pero se puede usar para mucho mas que eso, aunque casi en todos los casos se hablaria de una tecnica "pull", es decir, el timer sirve para disparar un proceso que se conecta con una fuente de datos, obtiene informacion relevante para el usuario (mensajes nuevos, tareas por realizar, comandos por ejecutar, etc), los procesa y reinicia el timer.
Una tecnica bien interesante con esto de los timers es la de tener un timer "maestro". Por ejemplo, supongamos que tenemos tres timers:
1) El timer del reloj, que se dispara cada segundo o minuto para actualizar la hora en pantalla
2) El timer de mensajes, que se dispara cada 15 segundos para verificar si hay mensajes nuevos para el usurio
3) El timer de control, que se dispara cada 5 segundos para verificar si hay comandos que la estacion deba ejecutar (como por ejemplo, devolver la informacion del usuario que esta logueado y la pantalla activa)
La idea del timer maestro es sustituir esos tres timers por un timer unico "maestro" que se dispare a un intervalo pequeno y que cada vez que se dispare evalue los "clientes" registrados y determine cuales deben ser ejecutados. Por ejemplo, seria algo asi:
PUBLIC goMainTimer
goMainTimer = CREATEOBJECT("mainTimerClass")
* Timer de hora
goMainTimer.addEvent("HORA",60,"THISFORM.actualizarHora()" && Disparar el evento actualizarHora() cada 60s
* Timer de mensajes
goMainTimer.addEvent("MSG",15,"THISFORM.verificarMensajes()"
* Timer de control
goMainTimer.addEvent("CTR",5,"THISFORM.verificarAccionesControl()"
Cada vez que el timer goMainTimer se disparara, pasaria por la lista de eventos y calcularia cuantos segundos han transcurrido desde la ultima vez que se invoco ese evento, y si la cantidad supera el intervalo definido para el evento, lo vuelve a ejecutar y guarda la hora; y asi con los demas eventos.
Resultado? en lugar de tener tres timers independientes, tenemos uno solo central que se encarga de realizar las mismas tareas de una manera mas eficientes y consumiendo menos recursos.
Saludos
Victor Espina