Na das ist doch nicht so schwer:
angenommen, du möchtest einen Countdown von 45 Minuten.
Anstatt den Timer einmal nach 45 min feuern zu lassen, rechnest du erst einmal
die Zielzeit aus:
Delphi-Quellcode:
var
zielzeit : TDateTime;
minuten : double;
begin
minuten := 45.0;
// Zum Datentyp TDateTime muss man folgendes wissen:
// TDateTime wird als Flieskommawert in einem Double gespeichert
// 1 Tag entspricht dem Wert 1.0
// Beispiele
// morgen := Now + 1.0; // morgen um die gleiche Uhrzeit
// h1 := Now + 0.5; // ab jetzt in 12 Stunden (=0.5 Tage)
zielzeit := Now + (45.0/60.0) / 24.0;
end;
Jetzt lässt du den Timer alle 2 Sekunden feuern und rechnest den Abstand
in Sekunden bis zum Zieltermin aus.
Delphi-Quellcode:
rest := zielzeit-Now;
sekunden := Round(rest*60.0*60.0*24.0); // 1 Tag hat 24 Stunden, 1 Std=60Min, 1 Min=60 sekunden
Ist der Abstand <= 0 dann wird der Timer deaktiviert und deine Aktion kann stattfinden.
Anderfalls wird nur die Position deiner Gauge Komponente verändert.