Thema: Delphi Timer reseten?

Einzelnen Beitrag anzeigen

gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Timer reseten?

  Alt 10. Dez 2010, 00:17
Jedes Timer-Event startet eine Art Thread.
D.h. wenn du z.B. deinen TimerIterval auf eine Sekunde Interval := 1000; setzt und die Aktionen im TimerEvent länger als 1 Skunde dauern, wird der Timer dennoch erneut ausgelöst, obwohl die vorhergehende Aktion des Timers noch gar nicht beendet ist.
Das kann (u.U.) zu einer Reihe von AV führen, Egal, ob du per Button den Timer auschaltest oder nicht, da das vorhergehende TimerEvent immernoch läuft.

Ich habe bis jetzt solche Aktionen ganz einfach gelöst.
PseudoCode:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
Timer1.enabled := FALSE;

fktMacheZeugsDieLangeZeitBraucht ();

Timer1.enabled := TRUE;
Und das muß funktionieren!

Somit wird der Timer beim Event abgeschalten, du kannst zeitintensive Operationen vornehmen und anschließend wird der Timer neu starten. Er wartet dann wieder 1 Sekunde und erledigt dann wieder seine Aufgabe.
  Mit Zitat antworten Zitat