FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Manejo de un Ttimer
Buenas, soy yo nuevamente con una consulta simple pero que me esta matando.
tengo un Ttimer en mi form y no se bien como utilizarlo, yo necesito generar un contador que comienze en 0 y se vaya incrementando, el contador es de tiempo, o sea que tiene hora, minutos y segundos. lo unico que logro hasta el momento es inicializar mi contador a cero el incremento lo debo hacer en el evento ontimer, si no me equivoco. me surge otra duda, si necesito mas de un contador de este tipo, voy a necesitar tantos Ttimer como contadores quiera incorporar? |
#2
|
|||
|
|||
Hola buenas
Yo lo haría del siguiente modo: 1) Define una variable global como tdatetime. Por ejemplo
2) En el evento oncreate del formulario añades esto:
3) Finalmente en el evento ontimer pon solo esta linea :
El problema de tu código es que defines la variable en el evento del timer, con lo cual el valor actual se pierde cada vez que sale del evento. Además, cada vez que se ejecuta el timer tu mismo pones el contador a cero, cuando solo deberias hacerlo una vez al comenzar el programa. Finalmente, lo de sumar 'manualmente' el valor del contador tampoco es muy buena idea porque la precisión del timer no es muy buena y a la larga tu reloj terminaria adelantandose o atrasandose. Saludos Hogol |
#3
|
||||
|
||||
muchas gracias por tu ayuda, ya me pongo a investigar esto y luego te aviso. no tenia idea de "now"
siguiendo en el tema, el timer como ve una resta de este tipo datetime = 23:00 now = 01:00 tengo que realizar algun tratamiento en estos casos o delphi realiza la convercion adecuada para no tener problemas? Última edición por miguel_fr fecha: 20-06-2004 a las 02:04:56. Razón: para agregar consulta |
#4
|
||||
|
||||
El tipo de dato TDateTime es formato de fecha y hora, representado mediante un número real, donde la parte entera es el número de dias y la parte fraccionaria es la hora, minutos, segundos y milisegundos.
Por tanto puedes hacer perfectamente sumas y restas con otras fechas y mezclandolos con números, que siempre vas a tener una fecha válida.
Mas natural sería usar las funciones que existen en delphi (al menos en la version 6) para incrementar parcialmente, pero bueno, es la idea lo que importa. Por tanto, cuando sean las 23:00 y le sumas 2 horas, cambiará la hora y la fecha, dandote la 1 de la madrugada y modificando la fecha del datetime. Si lo que necesitas es saber el tiempo que ha pasado entre 2 fechas, usa las funciones DaysBetween, HoursBetween etc... etc... Saludos |
|
|
|