Einzelnen Beitrag anzeigen

NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#1

Wecker - ELEGANTE Lösung mit Abbruch via Button gesucht

  Alt 24. Mai 2022, 15:59
Hallo Leute,

mein Problem ist zweifellos schon zig-fach gelöst. Doch wo genau?
Ich brauche nichts als einen Wecker für 10 Minuten.

1) Es gibt einen "Startknopf", um den Countdown zu beginnen, dessen Methode hier drunter steht.
2) Und es gibt einen "Abbruch-Button", zu dem es noch gar keine Methode gibt.


Delphi-Quellcode:
// Ausführungsprogramm des Countdowns
procedure TForm_KalenderMain.Panel_CountdownClick(Sender: TObject);
Var Startzeit: TTime;
begin
  Startzeit:=DateTimePicker_Alarm;
.... * hier soll irgendwie abgefragt werden, ob seit der Startzeit bereits 10 Minuten vergangen sind. *
  Panel_Alarm.Color:=clGreen;
end;
Meine erste Frage ist die Funttion des Countdowns:
Wie löse ich den Countdown am Elegantesten?
Mit Sleep?
Oder indem ich jede Sekunde die Zeit neu abfrage?
Oder indem ich ....?

Das kann wohl jeder lösen. Irgendwie.
Der Profi hingegen weiß, wie es zu lösen geht, ohne sinnlos Ressourcen zu blockieren, indem ich ständig die Zeit prüfe.
Wofür ich hier danke.

Dann wird es trickreicher:
Es soll noch eine Button geben, der erlaubt, den Alarm abzubrechen.
Dieser Button wird in ein Click-Event führen.
Doch - was dann?
Ich könnte natürlich die Starzeit als globale Variable führen und sie einfach hochsetzen. Das sieht aber richtig hässlich aus vom Stil her.
Ich könnte eine globale Boolean Variable einführen, die den Alarm hält oder nicht. Allerdings müsste ich die neben der Zeit ständig abfrgen und das nur alle 1 Sekunden. Was eine hässliche Verzögerung darstellt.
Ich könnte ein Handle schreiben und gleich ins System greifen. Das sieht mir aber noch hässlicher aus.

Hat hier jemand 2 ELEGANTE Lösungen?
Mit bestem Dank im Voraus.

Nicole
  Mit Zitat antworten Zitat