Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie wird ein Fenster geschlossen? (https://www.delphipraxis.net/49515-wie-wird-ein-fenster-geschlossen.html)

Khabarakh 12. Jul 2005 14:48

Re: Wie wird ein Fenster geschlossen?
 
Zu Terminate:
Gut, es handelt sich also nicht um das Haupt-Formular :wink: .
Aber falls es so wäre, ist dann Terminate nicht die schnellste Lösung, wenn man die EventHandler auslassen will? Oder gibt es noch andere Nachteile?

Zu nil:
Schnell eine eigene Prozedur
Delphi-Quellcode:
procedure TMyForm.CloseWithoutPrompt;
begin
  OnClose{Query} := nil;
  Close;
end;
und mit Strg + R durch den Code gehen hätte es auch getan, aber Luckies Lösung ist wahrscheinlich doch die beste.

Marphy 12. Jul 2005 14:57

Re: Wie wird ein Fenster geschlossen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

@Sidorion:
Danke für deinen Lösungsvorschlag! :-D Ich habe das Ganze zum Testen leicht modifiziert in eine kleine Demo gepackt (Anhang) und es funktioniert einwandfrei... Der Aufwand ist zwar nicht gleich 0, hält sich aber im Rahmen. :wink:
Falls jemand eine bessere/einfachere Lösung parat hat, bitte posten!! :thumb:

@Luckie:
Das hat Sid ja im Großen und Ganzen schon gepostet :wink: In der Demo sind beide Varianten kombiniert.

@Sebastian:
Und was ist, wenn ich das Fenster dann wieder über Show() einblende und es über die Titelleiste schließe? :???: Und drück dich nicht vor der anderen Frage! :mrgreen: :wink:

Gruß, Marco

Khabarakh 12. Jul 2005 15:07

Re: Wie wird ein Fenster geschlossen?
 
Zitat:

Zitat von Marphy
Und was ist, wenn ich das Fenster dann wieder über Show() einblende und es über die Titelleiste schließe?

Hast ja Recht, ich war in Gedanken noch immer bei der MainForm :wink: . Man könnte natürlich den Wert von OnClose speichern und nach Close (ohne Klammern, wir sind doch nicht in C :wink: ) wieder zuweisen, aber Luckies und Sidorions Lösung ist ja sowieso die beste.

Zur dieser gewissen anderen Frage:
Der Umfang hat sich inzwischen verdoppelt, die Entwicklungszeit steigt dazu proportional :wink: . Der Code ist zu etwa 70% fertig, es fehlen noch ein Demo-Programm und wenigstens etwas Dokumentation. Jetzt aber genug mit OT :wink: .

DevilsCamp 12. Jul 2005 15:08

Re: Wie wird ein Fenster geschlossen?
 
Eine andere Möglichkeit wäre folgende:

Wenn man auf das X klickt, wird, soweit ich mich nicht irre, eine System-Botschaft an das Fenster geschickt (die nicht kommt, wenn man Close() aufruft).

Also einfach die Botschaften-Behandlung abfangen (WndProc oder so ähnlich) und bei der Botschaft den entsprechenden Code ausführen.

Marphy 12. Jul 2005 15:18

Re: Wie wird ein Fenster geschlossen?
 
Hallo zusammen:

@Marc:
An sowas habe ich auch schon gedacht... Ist aber um einiges aufwändiger. Andererseits könnte man z.B. auch ermitteln, ob Windows versucht, die Anwendung zu beenden, weil der PC heruntergefahren wird.

@Sebastian:
Na, was hab ich dir gesagt? :mrgreen: Wie gesagt, schreib mir, wenn das Teil fertig ist! :)

Gruß, Marco


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr.
Seite 2 von 2     12   

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