PDA

Ver la Versión Completa : Contador de tiempo


marceloalegre
28-04-2005, 17:24:31
Que tal les molesto para que me iluminen con este tema:
necesito hacer para una aplicacion, un contador en hh.mm.ss
que cuente el tiempo de 0 desde que lo ejecuto...
Estuve investigando, y encontre la funcion gettickcount ... pero me retorna nro y si le pongo un timer va ascendiendo... no me sirve.. ademas tengo el problema del formato... hh.mm.ss

alguien me puede asistir en este tema con algun codigo como para que pueda ponerme en accion con esto?

Muchas gracias.-

Investment
28-04-2005, 18:11:07
si le pongo un timer va ascendiendo... no me sirve.. ademas tengo el problema del formato... hh.mm.ss
¿Entiendo que quieres un Timer que vaya bajando el tiempo desde que se ejecuta la aplicacion no?

En ese caso y suponiendio que quieres que baje desde una hora hasta cero:

.- Pon una label en tu formulario con el caption: '01:00:00'
.- Pon un timer en tu formulario
.- En el evento OnTimer del Timer escribe lo siguiente:

procedure TForm1.Timer2Timer(Sender: TObject);
begin
LabelTimer.Caption:= FormatdateTime('hh:mm:ss',StrToDateTime(LabelTimer.Caption) -0.00001);

if labelTimer.caption:='00:00:00' then Close; //Se cierra la aplicacion

end;

La etiqueta cambia cada segundo poniendo en el label un segundo menos y haciendo una cuenta atras hasta 00:00:00

unreal4u
28-04-2005, 19:53:01
haber ... yo entendi justamente todo lo contrario ... que parta desde 0 hasta el infinito ... en ese caso, la solución sería la siguiente:

1.- cuando se te inicia el programa (evento OnCreate del Form principal), verificas qué hora es y la guardas en una variable global.

2.- Pones un timer, y cada 1 seg (o 1000 mseg), verificas qué hora es.

3.- Sacas la diferencia y...

4.- Ya tienes el tiempo que se ha estado ejecutando tu programa.

GetTickCount sirve para ver cuánto rato ha estado prendido el PC, (Hasta donde sé, nunca lo he confirmado), pero no para ver cuánto rato ha estado tu aplicación en uso.

Para lo otro, o sea, el formato, creo que cuando lo conviertes a string, le pones el formato, por ejemplo

datetostr('hh:mm:ss:zzz',now);


No estoy seguro, pero creo que así era.