2011-06-14 30 views
5

¿Alguien tiene un código corto y efectivo para hh: mm: ss timer (Timer1.Interval: = 1000)? Puedo hacer uno, pero quiero algo eficiente.Delphi: Simple hh: mm: ss Temporizador

Gracias!

Mi Código:

Var MyTime:TTime; 

MyTime:=EncodeTime(0,0,0,0); 

procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
MyTime:=incsecond(Mytime,1); 
form1.Label1.Caption:='Time: '+TimeToStr(MyTime); 
end; 
+1

Es imposible saber lo que quiere hacer basándose únicamente en la información proporcionada en su pregunta. Necesita decirnos exactamente qué desea lograr. ¿Desea ayuda para convertir un número de milisegundos en horas, minutos y segundos, o desea animar un reloj digital con la cuenta atrás, o ...? –

+0

solo para mostrar la hora (hh: mm: ss) en Etiqueta. "Convertir un número de milisegundos en horas, minutos y segundos" o sin convertir si es posible hacerlo. – maxfax

+4

¿Definir eficiente? Tiempo mínimo de ejecución? Código mínimo? Minimal StackOverflow búsquedas? – dthorpe

Respuesta

8

Añadir un VAR para realizar un seguimiento de cuándo se inició el temporizador.

TForm1 = class(TForm) 
    private 
    timerStart: TDateTime; 
    public 
    proceure StartTimer; 
    end; 

El procedimiento para iniciar el temporizador

proceure TForm1.StartTimer; 
beign 
timerStart := now(); 
timer1.interval = 1000; 
timer1.enabled := true; 
end; 

En el evento AlCronómetro

Label1.caption := formatdatetime('hh:nn:ss', timerStart - now()); //nn is for minutes. 

Esto debe mostrar la hora correcta tomada para cualquier intervalo.
es decir, 5000 para mostrar cada 5 segundos, el tiempo empleado.

Nota: Sin pruebas, puede que el funcionamiento del temporizador durante más de 24 horas no muestre la diferencia horaria correcta. Para ese creo que que la cadena de formato de fecha y hora debe ser algo así como dd hh:nn:ss para mostrar los días pasados ​​

+0

+1 Para usar FormatDateTime, pero -1 para tratar de poner un doble en Tag. = 0 – NGLN

+0

Fair Call, a veces me olvido de que TdateTime no es una int. –

Cuestiones relacionadas