Registriert seit: 27. Nov 2017
2.490 Beiträge
Delphi 7 Professional
|
AW: OnCloseQuery
27. Mär 2020, 10:11
@Frühlingsrolle
Create wird beim Erstellen aufgerufen.
Close beim Schließen.
Beim Hauptformular führt das Schließen eines des Formulares auch zum Programmende.
Bei jedem weiteren Formular aber nicht.
Wenn ich dort also im Create was erstelle, das Formular öffne (show), irgendwas mache, es dann schließe, dort alles im Create erstellte im OnClose bzw. OnCloseQuery freigebe und es dann später mit einem Show wieder anzeige, kann das zu eher unschönen Effekten (Zugriffsverletzungen) führen.
Probier' das doch bitte einfach mal in einem Testprogramm mit mehreren Formularen aus. In allen Formularen, außer dem Hauptformular erstellst Du halt die Routinen für's Create und OnClose bzw. OnCloseQuery. Im Create erstellst Du Stringlisten oder sonstige Objekte, im OnClose bzw. OnCloseQuery gibst Du sie frei.
Ins Hauptformular machst Du mehrere Buttons, je Unterformular einen und dann zeigst Du beim Klick auf den Button mit Show jeweils das entsprechende Unterformular an. Wie oft funktioniert das ohne Fehlermeldung?
Wird beim Schließen des Hauptformulars OnCloseQuery der Unterformulare aufgerufen? Oder das OnClose der Unterformulare?
Geändert von Delphi.Narium (28. Mär 2020 um 10:09 Uhr)
Grund: Im Anhang veränderte Sourcen eingefügt. Text, entsprechend des Hinweises von p80286 angepasst.
|