![]() |
Wie beendet man eine eigene Anwendung richtig?
Hallo Alle!
Wie beendet man eine eigene Anwendung richtig, vorallen wenn man mehrer Fenster offen hat? Mit Close wird ja nur das aktuelle Fenster geschlossen. Gruß Heike |
Re: Wie beendet man eine eigene Anwendung richtig?
Hallo,
Wenn du die MainForm schließt, müsste auch die Anwendung beendet werden. |
Re: Wie beendet man eine eigene Anwendung richtig?
Wenn du das Hauptformluar mit Close schliesst, werden auch alle anderen Fenster der Anwendung geschlossen.
|
Re: Wie beendet man eine eigene Anwendung richtig?
Zitat:
Gruß Heike |
Re: Wie beendet man eine eigene Anwendung richtig?
Was hast du beim Erzeugen als Owner übergeben?
|
Re: Wie beendet man eine eigene Anwendung richtig?
Moin, moin,
dann schließe die Normalfenster und gib sie frei (destroy) im OnClose-Ereignis des Hauptformulars. MKinzler hat übrigens noch die zweite Variante im Auge (Hirn) : - Den Owner bei Erzeugen auf Application setzen, dann werden * diese auch mit dem Mainform geschlossen. Grüße // Martin |
Re: Wie beendet man eine eigene Anwendung richtig?
Wie wärs einfach mit Application.Terminate ?
|
Re: Wie beendet man eine eigene Anwendung richtig?
Zitat:
|
Re: Wie beendet man eine eigene Anwendung richtig?
@ mkinzler
Warum ist das unsauber? Kannst du das bitte naeher erläutern? Ich dachte HALT sei die unsaubere Lösung und verwende eigentlich oft Application.terminate. Gruß Richard |
Re: Wie beendet man eine eigene Anwendung richtig?
Close der Mainform macht auch nichts anderes nachher, als Application.Terminate aufzurufen.
Delphi-Hilfe schreibt folgendes: Zitat:
|
Re: Wie beendet man eine eigene Anwendung richtig?
Wenn Formulare zur laufzeit ohne Parent erstellt werden, werden diese nicht richtig Freigegeben. Zugegeben ist besser als HALT.
|
Re: Wie beendet man eine eigene Anwendung richtig?
richtig unsauber ist keine Variante wenn man weiß was dabei geschieht und es bewusst einsetzt um die vorzuge zu nutzen.
Zur eigentlichen Frage: Ein Programm winn linear abgearbeitet und wenn ganz am Ende angekommen wird ist das Programm zu Ende. Am besten sieht man das bei alten Konsolenanwendungen oder Batchdateien. Wenn diese die letzte Zeile abgearbeitet haben ist das Programm zu Ende. Genau so verhält es sich auch bei deinem Programm. Um Klicks etc. zu verarbeiten haben Windowsanwendungen eine Nachrichtenschleife welche eben so lange immer wieder durchläuft bis die Quit-Message kommt. Nach der Nachrichtenschleife ist dann in der Regel das Programmende. Mit Funktionen wie Application.Terminate kannst du diese Schleife auch beenden. Und mit Halt wird zum Programmende gesprungen und man hat noch die Möglichkeite einen Errorcode zurück zu geben (den der Aufrufer deines Programmes dann auswerten kann). @mkinzler: Die Begründung warum Halt schlechter sein soll würde mich interessieren (in einem seperatem Thread). Wie bereits erwähnt hat auch Halt seine Daseinsberechtigung. |
Re: Wie beendet man eine eigene Anwendung richtig?
Zitat:
|
Re: Wie beendet man eine eigene Anwendung richtig?
Release an der Stelle könnte nutzlos sein denn Release postet eine Message. Wenn aber dann keine Nachrichten mehr verarbeitet werden (wozu auch, es muss ja nicht mehr auf klicks etc. reagiert werden sondern nur noch aufgeräumt werden) wird auch nichts frei gegeben.
|
Re: Wie beendet man eine eigene Anwendung richtig?
Wäre da nicht FreeAndNil am besten? Daran hätte ich pauschal gedacht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz