Man kann der
VCL über
Application.Terminate mitteilen, dass die Anwendung beendet werden soll.
Die Anwendung wird allerdings nicht sofort beendet, sondern kann noch weiterlaufen.
Mit if
Application.Terminated then ... lässt sich an strategischen Stellen überprüfen,
ob man nicht eigentlich mit der Arbeit sofort aufhören sollte.
Delphi-Quellcode:
procedure TForm_Connector.Beenden1Click(Sender:TObject);
begin
Timer1.Enabled:=False;
bBeenden:= true;
Application.Terminate; // <===
close;
end;
// PROGRAMM IN DEN TRAY MINIMIEREN ODER BEENDEN
procedure TForm_Connector.FormCloseQuery(Sender:TObject;
var CanClose:Boolean);
begin
CanClose := Application.Terminated; // <====
if not CanClose then
// Programm soll nur über das MenüItem "Beenden" oder über das TrayIcon "Beenden" beendet werden
// beim schließen des Fensters über das Kreuz der Form soll das Programm weiter im Tray laufen und nicht beendet werden
CoolTrayIcon1.HideMainForm;
end;
procedure TForm_Connector.Timer1Timer(Sender:TObject);
begin
Timer1.Enabled:= False; // Timer erstmal ausschalten und die Verzeichnis abarbeiten
if Application.Terminated then Exit; // <====
...
// hier wird nun verschiedenes Zeug abgearbeitet
// z. B. alle Dateien eines Verzeichnisses in ein anderes Verzeichnis verschieben
Timer1.Enabled:= True; // Timer nun wieder einschalten
end;