Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#17

Re: Pause wie beim Sleep-Befehl

  Alt 29. Aug 2009, 17:17
Eigentlich ist die Lösung mit Delay() nicht besonders sauber.
Was passiert z.B. wenn während Delay()noch läuft das Formular geschlossen wird und sich dieses selbst freigibt?
=> Crash
Oder was passiert, wenn man während Delay() läuft einen Button klickt, der wiederum eine Methode aufruft,
die ebenfalls Delay() aufruft?
Es können sehr üble Dinge passieren, wenn man Application.ProccessMessages zu oft oder unkontrolliert aufruft.

Mit einem Timer kann man einen eventbasierten Ablauf ausführen.
Dazu ruft man eine Methode auf und übergibt die Verzögerungszeit und die Methode, die aufgerufen werden soll.
procedure CallDelayedMethod(delay:cardinal; method:TThreadMethod); Der Timer wird gestartet und die übergebene Methode nach Ablauf der Zeit aufgerufen.

Im Anhang gibt es dazu ein Demo das die Fensterfarbe angelehnt an eine Ampel verändert.
Angehängte Dateien
Dateityp: zip zeitsteuerung_162.zip (4,4 KB, 32x aufgerufen)
fork me on Github
  Mit Zitat antworten Zitat