Autor Beitrag
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 20.08.02 12:30 
Es gibt mehrere Möglichkeiten seine Anwendung zu beenden:
  • Close ():
    Close() schliesst die aktuelle Form. Wenn die aktuelle Form das Hauptformular ist (oder Close von der Hauptform aufgerufen wird), wird die gesamte Anwendung geschlossen. Dies ist eigentlich die normale Methode, eine Anwendung zu beenden. Denn sowohl die OnCloseQuery und OnClose Ereignisse der Form werden dann ausgelöst. Auch der Code in der Finalization Sektion wird ausgeführt.
  • Application.Terminate:
    Application.Terminate ruft die API-Funktion PostQuitMessage() auf welche eine WM_QUIT-Message in der Message-Queue ablegt. Sobald das Programm auf diese Nachricht trifft beendet es sich selbst. Es werden dabei alle Formulare freigegeben, wobei allerdings die Ereignisse OnCloseQuery und OnClose nicht ausgelöst werden (das geschieht nur bei einer WM_CLOSE-Message, nicht aber bei WM_QUIT). Sowohl das OnDestroy-Ereignis als auf der Code in der Finalization Sektion werd aber ausgeführt.
  • Halt ():
    Halt() ist die brutalste Methode, eine Applikation zu beenden. Es verwendet ExitProcess() um den Prozess zu beenden, ohne sich darum zu kümmern, Form-Objekte freizugeben. Keine der Ereignisse OnCloseQuery, OnClose, OnDestroy werden ausgelöst. Der Code in der Finalization wird aber ausgeführt. Mit Halt() sollte eine GUI-Anwendung nie beendet werden, ausser wenn's anders nicht mehr geht.

Infos von Toms.
Hinweise von Motzi eingefügt.