PDA

Ver la Versión Completa : Cronometro preciso


alquimista
23-07-2008, 14:40:33
Como realizar un cronometro con minutos, segundos y centesimas de segundo que sea preciso y aunque se utilicen muchos recursos del pc no se retrase mucho y que se vea en pantalla.

He mirado por ahí y baje un programa (creo que de dec) que utilizaba un timer para tres cronometros.
Está muy bien por su sencillez, pero tiene el inconveniente de que se basa en la función Time y si se cambia la hora del sistema se cambia la cuenta del cronómetro.

Alguien puede dar una solución a esto o hay que hacer cálculos dentro del evento del TTimer.
He hecho variaciones utilizando un TjvThreadTimer de las JEDI y he leido por ahí que hay funciones de la api precisas.


Un extracto del fuente era:

procedure TfrmMain.Timer1Timer(Sender: TObject);
var str: string;
l:integer;
begin
if not Checkbox1.Checked then
begin
Marca1:= Time;
str:=FormatDateTime('nn:ss:zzz',Marca1 - Marca);
l:=length(str);
Label1.Caption:= LeftStr(str,l-1);
end;
if not Checkbox2.Checked then
begin
Marca2:= Time;
Label2.Caption:= FormatDateTime('nn:ss:zzz',Marca2 - Marca);
end;
if not Checkbox3.Checked then
begin
Marca3:= Time;
Label3.Caption:= FormatDateTime('nn:ss:zzz',Marca3 - Marca);
end;
if Marca1 > Marca2 then
Label4.Caption:= FormatDateTime('nn:ss:zzz',Marca1 - Marca2)
else
Label4.Caption:= FormatDateTime('nn:ss:zzz',Marca2 - Marca1);
if Marca2 > Marca3 then
Label5.Caption:= FormatDateTime('nn:ss:zzz',Marca2 - Marca3)
else
Label5.Caption:= FormatDateTime('nn:ss:zzz',Marca3 - Marca2);
end;


Gracias