Einzelnen Beitrag anzeigen

Benutzerbild von DP News-Robot
DP News-Robot

Registriert seit: 4. Jun 2010
14.983 Beiträge
 
#1

Midiendo el tiempo con Firemonkey

  Alt 3. Jun 2019, 18:00




A continuación les presento una forma de medir el tiempo con Firemonkey, que nos va a proporcionar una alta precisión y que será muy útil en el caso de que tengamos que medir eventos físicos: la caída de una pelota , movimiento de bolas dentro de una caja, tiro parabólico, simulación de caída libre de un objeto, etc...
La solución es usar la clase tStopwatch de la unit system.Diagnostics, que proporciona una lectura precisa del temporizador del reloj del sistema operativo.
Se necesita inicializar el temporizador, por ejemplo en el evento OnCreate, llamando al método StartNew.
El método GetTimeStamp devuelve el número actual de tics del sistema.
Tambien podemos utilizar la propiedad Frecuency que nos da el número de tics por segundo.






uses
System.Diagnostics;


// ...
procedure TForm1.FormCreate(Sender: TObject);
begin
TStopwatch.StartNew;
Log('Frecuencia = ' + TStopwatch.Frequency.ToString);
end;
function TForm1.GetRawReferenceTime: double;
begin
Result := TStopwatch.GetTimeStamp / TStopwatch.Frequency;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var t, elapsed: double;
begin
t := GetRawReferenceTime;
elapsed := t - FLastTime;
FLastTime := t;
Log('t=' + t.ToString + ' diferencia=' + elapsed.ToString);
end;

Suscribirse :



Weiterlesen...
  Mit Zitat antworten Zitat