Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Form: OnClose Ereignis nutzen (https://www.delphipraxis.net/5465-form-onclose-ereignis-nutzen.html)

Gambit 7. Jun 2003 12:23


Form: OnClose Ereignis nutzen
 
Moin!

Ich weiß nicht genau, ob dieses Thema hier hin gehört aber ich möchte gerne wissen, in wie weit ich mir das OnClose Ereignis einer Form zu nutze machen kann. Es geht mir nur darum, wie ich es hinbekomme, dass ich, wenn ich auf das X oben rechts der Form klicke, ich noch eine Abfrage o.ä bekommen kann.

Gruß

Gambit

Daniel B 7. Jun 2003 12:28

HAllo,

ja, dafür kannst Du es benutzen.
Wenn Du Deine Anwendung mit Close; beendest, dann nimm lieber die OnClose-Prozedur, beendest Du aber mit App.Terminate;, dann lieber OnDestroy.
Weiteres hierzu:
http://www.delphipraxis.net/viewtopic.php?t=200

Grüsse, Daniel :hi:

sakura 7. Jun 2003 12:28

Das OnClose ist dafür nicht geeignet, aber es gibt das OnCanClose Ereignis, welches geradezu perfekt dafür ist. Wenn Du das Schließen des Forms verhindern willst, musst Du einfach die Variable CanClose auf False setzen.

...:cat:...

Gambit 7. Jun 2003 12:46

Hmm, Danke. So ganz klar ist mir jetzt aber doch noch nicht, wie ich dann eine Abfrage(zB. dieses dusselige 'Wollen Sie wirklich...?') implementieren kann.

Gambit

Christian Seehase 7. Jun 2003 12:50

Moin Gambit,

das geht am Bestem im OnCloseQuery Ereignis (das sakura meinte)
Schau's Dir doch mal an.

@Daniel B:
OnClose/OnDestroy wären schon zu spät.

Gambit 7. Jun 2003 12:57

OK, aber ich kann in dem Ereignis OnCloseQuery nichts eintragen. Wie müsste denn der Procedurkopf aussehen, damit ich das in das Ereignis eintragen kann?

Gambit

Blacklotus 7. Jun 2003 13:03

Ich vermute mal du braucht sowas in der Art:

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageDlg('Programm wirklich beenden?',
mtConfirmation, [mbYes, mbNo], 0) = mrNo then
Canclose := false;
end;

Christian Seehase 7. Jun 2003 13:03

Moin Gambit,

wie Du kannst Da nichts eintragen?
Im Objektinspektor\Ereignisse einen Doppelclick auf OnCloseQuery und den Code eintragen geht nicht? :shock:

Gambit 7. Jun 2003 13:14

Aha, jetzt hab ichs, Danke!!

Gambit


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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