Da du ja deinen Timer nicht im Millisekundenrythmus ausführen kannst, wirst du nicht geneu vergleichen lassen können.
nimm die nächste Zeit (nächste volle stunde) und prüf so
If Trunc(Now) >= strtotime('16:00:00') then
Ach ja, Now enthält auch noch die Tage(Monate,Jahre) ... die müßtest du erstmal rausrechnen.
[add]
ungetestet ... mal sehn, ob ich 'nen Denkfehler hab
(Frac(Time) >= StrToTime('06:00:00')) and (Frac(Time) < StrToTime('20:00:00'))
prüfen ob es ab 6°° und vor 20°° (also bis kurz nach 19°°) ist
Trunc(Frac(Time) * 24) > Trunc(Frac(LastTime) * 24)
Zeiten in Stunden umrechnen und vergleichen
Delphi-Quellcode:
Var LastTime: TDateTime; // am Besten im Private-Abschnitt von TForm1 deklarieren
Procedure TForm1.Timer1Timer(Sender: TObject);
Var Time: TDateTime;
Begin
Time := Now;
Label1.Caption := TimeToStr(Time);
If (Frac(Time) >= StrToTime('06:00:00')) and (Frac(Time) < StrToTime('20:00:00'))
and (Trunc(Frac(Time) * 24) > Trunc(Frac(LastTime) * 24)) Then Begin
LastTime := Time;
Showmessage(TimeToStr(Time));
End;
End;
// und nicht vergessen LastTime zu initalisieren
// LastTime := Now;