Zitat von
Luckie:
Wobei mir der erste Verbesserungsvorschlag nicht so ganz einleuchtet. Wie soll die Schleife weiter ausgeführt werden, wenn der Prozess beendet wird?
Der zweite ist aber sehr sinnvoll.
Das Beenden von Applikation ist etwas
von Hinten durch die Brust ins Auge.
Sobald das Hauptformular geschlossen wird oder die Message WM_ENDSESSION empfangen wird,
wird Application.Terminated auf True gesetzt.
Wenn das Programm dann aber noch in einer Schleife läuft, muss diese Schleife
irgendwie abgebrochen werden, sonst läuft das Programm weiter.
Also sollte man grundsätzlich jede länger dauernde Schleife so aufbauen:
Delphi-Quellcode:
for i := startwert to endwert do
begin
Machwas;
Application.ProcessMessage; // Damit die Anwendung auf Messages reagiert und nicht einfriert
if Application.Terminated then
Exit; // evtl. auch break, falls nach der Schleife noch was zu tun wäre
end;