[TTimer] Ver tiempo actual para completar el ciclo de un Timer
Hola la idea es la siguiente,
Si programo una tarea que se ejecuta cada 30.000 milesegundos en el evento OnTimer de un TTimer, ¿como puedo mostrar por pantalla cuantos milesegundos o segundos lleva hasta el momento para completar esos 30 segundos. O explicado en otras palabras. Si se ejecuta cada 30 segundos una tarea o proceso, ¿como puedo ver en un TLabel lo siguiente? ... 22 23 24 25 26 27 ... |
Hola Maxium,
30.000 milisegundos son 30 segundos, estaremos de acuerdo. Pues bien, puedes usar una variable donde almacenar los segundos que se llevan "contados". Si quiere mostrarlos tal que: 1, 2, 3, 4, etc., en cada evento "Interval" del Timer tendrás que incrementar el valor de dicha variable. Si quieres mostrar los segundos tal que: 29, 28, 27, etc., deberás hacer lo contrario, esto es, decrementar el valor de la variable. En en primer caso la variable parte de 0 y en el segundo caso parte de 30. Dicha variable podrás mostrarla en un "Label" o en el control que prefieras. |
Hola.
A mi me queda la duda de si el conteo debe mostrar los segundos transcurridos o faltantes para cada temporización del timer, es decir para cada vez que se dispare el evento OnTimer. Si eso es lo que deseas, vas a necesitar un segundo temporizador para que realize la tarea del conteo entre eventos (del modo que te comentó dec) ya que el TTimer no contempla esa posibilidad. Un ejemplo:
Saludos :) |
Hola a todos,
Yo, lo que diga ecfisa. :D |
Cita:
Saludos :) |
¡Hola a todos!
Cita:
|
Hola que tal,
Me refería a los segundos transcurridos. Sin embargo, es útil saber el proceso inverso para ver los segundos o tiempo faltante, y usarlo en algún proyecto futuro. Sino es por mi, será por alguien más. Por lo tanto, agradezco vuestra colaboración ^\||/ |
Lo más "fácil" sería usar dos TTimer: uno para los 30 segundos y otro para cada segundo, tal como comenta ecfisa, pero yo usaría sólo un TTimer que se activara cada segundo y fuera actualizando una variable (o el propio "Tag" del componente) y el TLabel hasta llegar a treinta, más o menos así:
Las ventajas son que usas menos recursos (y aún menos si en vez del campo fContador usas la propiedad Tag del TTimer), pero principamente evitaras tener que sincronizar dos TTimer diferentes, que puede parecer que no pero puede dar problemas. |
La franja horaria es GMT +2. Ahora son las 21:48:25. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi