Ver Mensaje Individual
  #4  
Antiguo 18-09-2012
Avatar de Jal9000
Jal9000 Jal9000 is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 20
Reputación: 0
Jal9000 Va por buen camino
Talking Respuesta a contador de tiempo

Buenas.

Hay varias maneras.

Para empezar, ya que parece que te gusta el timer, puedes ponerlo con Timer1.Interval:= 1000 (ms.) e ir contando las veces que se activa a base de incrementar una variable global dentro del evento OnTimer del Timer. Lo activas en el evento FormShow de la Form principal de tu programa haciendo Timer1.Enabled:= True o bien ya directamente en el propio inspector de objetos. Cuando te interese saber cuanto tiempo ha pasado echas cuentas del tiempo con la variable y ya está.

De todas maneras yo no me liaría tanto. Existe funciones y variables especiales para tiempo:

Puedes declarar una variable, llamémosla tiempo del tipo TDateTime. Al empezar el programa, por ejempo en el evento FormShow de la Form principal de tu programa,
haz tiempo:= Now;

Now es una funcion que te devuelve el instante actual (no voy a entrar ahora en qué formato) y luego, cuando te interese saber cuanto tiempo ha pasado haz
tiempo:= Now - tiempo; esto te dejará la variable tiempo cargada con el tiempo que ha pasado desde el principio.
A continuación añade DateUtils a tu lista de uses y usa el procedimiento
DecodeDateTime(const AValue: TDateTime;
out
AYear : Word;
out
AMonth : Word;
out
ADay : Word;
out
AHour : Word;
out
AMinute : Word;
out
ASecond : Word;
out
AMilliSecond : Word);poniendo la variable tiempo como valor para AValue. Obtendrás en las variables de salida el incremento de tiempo descompuesto en años, meses... hasta milisegundos. En realidad cuesta más de explicar que de hacer, pero creo que ya lo habrás pillado. Ten en cuenta que si tienes que mirar el incremento de tiempo varias veces, habrás de guardar la primera lectura de Now en una variable aparte, para que no se pierda.

He leido por algún sitio que hay una variable del estilo de tick que se inicia al arrancar Windows (o quizá la sesión, ahora no sé). Podrías leerla dos veces al estilo de la segunda solución, pero la verdad, no me acaba de gustar.

Saludos y que no decaiga (el ánimo...)
Responder Con Cita