Ich habe jetzt eine für mich ausreichende Lösung gefunden
!
Ich wandle "einfach" das von mir gewünschte Datum nebst Zeit in einen mir bekannten String um. Anschließend tue ich dasselbe in meiner Timer-Procedure auf exakt dieselbe(!) Art und Weise und vergleiche einfach die Strings miteinander. Wenn man den Timer auf 1.000 einstellt, bekommt man das Ereignis auch nur noch einmal und kann sich die Booleans sparen. Das ist auch besser so, weil man sonst bei meiner Anzahl von Aktionen schnell den Überblick verliert oder ggf. auf Array ausweichen muß, was das ganze nicht einfacher macht.
Die aktuelle Zeit könnte so aussehen,
Zeit:=Concat(DateToStr(Date),TimeToStr(Time));
das merken der Zeit z.B. so und
Delphi-Quellcode:
{ Zeitwerte merken }
Onn:=Concat(DateToStr(On_Date.Date), TimeToStr(On_Time.Time));
Off:=Concat(DateToStr(Of_Date.Date), TimeToStr(Of_Time.Time));
Run:=Concat(DateToStr(Run_Date.Date), TimeToStr(Run_Time.Time));
die Abfrage dementsprechend so:
Delphi-Quellcode:
{ online gehen? }
If Zeit=Onn Then
Begin
Application.MessageBox('Ich gehe jetzt online','Online',MB_OK);
End;
Wer noch eine bessere Idee hat, bitte trotzdem melden. Ich bin immer bereit, neues zu lernen!