Delphi-PRAXiS

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 Bei Klick aufs "Kreuz" nicht automatisch Schliessen (https://www.delphipraxis.net/51027-bei-klick-aufs-kreuz-nicht-automatisch-schliessen.html)

glkgereon 4. Aug 2005 19:13


Bei Klick aufs "Kreuz" nicht automatisch Schliesse
 
Hi

kann ich Delphi irgendwie beibringen, dass, wenn der user auf das kreuz rechts oben klickt, nicht das OnClose aufruft sondern eine andere Procedure?

steht das in der CloseAction oder so?

Olli 4. Aug 2005 19:16

Re: Bei Klick aufs "Kreuz" nicht automatisch Schli
 
Guck mal in die OH ;)

Bei Delphi-Referenz durchsuchenOnCloseQuery der zweite Parameter ;)

DP-Maintenance 4. Aug 2005 19:55

DP-Maintenance
 
Dieses Thema wurde von "alcaeus" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.
TForm-Problem -> VCL -> falsche Sparte ;)

glkgereon 4. Aug 2005 20:13

Re: Bei Klick aufs "Kreuz" nicht automatisch Schli
 
hmm...das ist CanClose...

was besagt der denn?

meine OH sagt dazu:

Zitat:

Der Boolesche Parameter CanClose der Ereignisbehandlungsroutine bestimmt, ob das Formular geschlossen werden darf (Standardwert true).
weiterhin heisst es noch:
Zitat:

In der Ereignisbehandlungsroutine für OnCloseQuery können Sie den Benutzer fragen, ob das Formular wirklich geschlossen werden soll. Der Benutzer kann beispielsweise in einem Meldungsfenster aufgefordert werden, vor dem Schließen des Formulars eine Datei zu speichern.
das heisst für mich das ich damit zum beispiel das beenden der anwendung verzögern oder abbrechen kann.

ich hab folgende konstruktion:

MainForm
SubForm

SubForm wird im Normalfall mit Hide "geschlossen" und mit Show wieder gezeigt
im OnClose der MainForm wird das OnClose der SubForm aufgerufen
Die SubForm selber soll sich ja nicht selber "richtig" beenden

ahh, während ich hier grad schreibe fällt mir die lösung ein :-D

einfach im OnClose der MainForm dem Close der SubForm als Sender MainForm geben, und das im OnClose abfragen und gegebenfalls abbrechen....

manchmal reicht es schon, wenn man das ganze nochmal erklärt :-D


Edit:

Hmm, nee, das geht gar nicht
wenn ich aus der MainForm raus SubForm.CLose aufrufe kommt im OnClose als Sender trotzdem SubForm an.
kann ich direkt SubForm.FormClose aufrufen? wird dann alles ordnungsgemäß freigegeben?

marabu 4. Aug 2005 21:10

Re: Bei Klick aufs "Kreuz" nicht automatisch Schli
 
Hi Gereon,

Zitat:

Zitat von glkgereon
kann ich direkt SubForm.FormClose aufrufen?

SubForm.Close() willst du aufrufen. SubForm.FormClose ist doch nur dein eigener event handler.

Grüße vom marabu

glkgereon 4. Aug 2005 22:47

Re: Bei Klick aufs "Kreuz" nicht automatisch Schli
 
hmm, ja

ich habs jetzt über einen zusätzlichen Boolean gelöst...find ich aber trotzdem nicht schön :(

tigerman33 7. Aug 2005 09:51

Re: Bei Klick aufs "Kreuz" nicht automatisch Schli
 
Wenn du einfach nur sicher gehen willst, dass dein SubForm ordnungsgemäß freigegeben wird, warum rufst du dann nicht einfach im MainForm.OnClose SubForm.Release auf? Das SubForm.OnClose müsste sich dann ja automatisch aufrufen. Wenn nicht, schreib halt noch Code für SubForm.OnDestroy


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 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 by Thomas Breitkreuz