Einzelnen Beitrag anzeigen

woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#9
  Alt 12. Apr 2003, 15:09
Hallo Chris,

was ich sagen wollte:

Beendet man ein Programm mit Terminate, werden alle offenen Formen geschlosssen, ohne das (was auch immer), der Entwickler in onclose, oder onclosequery noch prüfen, erledigen etc wollte, abgearbeitet wird (z.B. das Abspeichern von Daten).

Verwendet man deshalb das close der Hauptform, um die Anwendung zu beenden, dann wird zwar onclose/onclosequery der Hauptform aufgerufen, aber alle anderen Formen werden wiederum geschlossen, ohne das deren onclose/onclosequery Ereignisse aufgerufen werden (Daten werden nicht gespeichert)(außer bei MDI).

Oder anders, Anwendung beenden durch Terminate schließt alle Formen, ohne Abarbeitung des Onclose/Onclosequery implementierten Codes irgendeiner offenen Form,
Anwendung beenden durch close der Hauptform schließt immer noch alle Formen, ohne Abarbeitung des Onclose/Onclosequery implementierten Codes irgendeiner offenen Form (Daten gehen immer noch verloren), außer eben die der Hauptform,



Und es gibt auchnoch weitere Argumente, weswegen man meiner Meinung nach, wenn man es ganz sauber machen will, in Onclosequery nur code implementieren sollte, der als Reaktion auf Userclick auf das Schließenicon der Form notwendig ist, ich die programmgesteuerte Beendigung eines komplexen Programms einer Methode überlassen würde, die mit application.terminate abschließt.
  Mit Zitat antworten Zitat