Ver Mensaje Individual
  #1  
Antiguo 23-07-2008
alquimista alquimista is offline
Miembro
 
Registrado: ene 2008
Posts: 213
Reputación: 19
alquimista Va por buen camino
Smile Cronometro preciso

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:

Código Delphi [-]
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
Responder Con Cita