![]() |
Verständnisfrage zu form.close
hallo zusammen,
ich erzeuge aus einem Form1 ein zweites form und zeige diese modal an. kdbearbeitenform := Tkdbearbeitenform.Create(nil); kdbearbeitenform.showmodal; mit Klick auf einen Button im Form kdbearbeitenform wird das Form geschlossen. close; nun habe ich gedacht, ich muss in der proc FormClose das Form mit free "zerstören" da es ja möglich ist aus Form1 immer wieder mit kdbearbeitenform := Tkdbearbeitenform.Create(nil); kdbearbeitenform.showmodal; ein neues Form zu erzeugen. wenn ich das so mache, bleibt mein Prog beim Schliessen stehen, ohne free funktioniert es fehlerlos? Aber wird der Speicher so überhaupt freigegeben, oder streikt das Porg vieleicht nach xy-maligen Erzeugen des 2ten Form? Danke Gruss KH |
Re: Verständnisfrage zu form.close
Zitat:
Delphi-Quellcode:
kdbearbeitenform := Tkdbearbeitenform.Create(nil);
try kdbearbeitenform.showmodal; finally kdbearbeitenform.free; end; Zitat:
close setzt (vereinfacht gesagt) lediglich die visible-eigenschaft auf false. Ausserdem solltest Du nicht 'close' verwenden, sondern den Buttons entsprechende "modalresult"-Values zuweisen. |
Re: Verständnisfrage zu form.close
Zitat:
und wenn ich einen owner zuweise, wirds ja auch erst beim entfernen des owners mit entfernt, wennich das richtig sehe. |
Re: Verständnisfrage zu form.close
Zitat:
mrClose gibts gar nicht :-( |
Re: Verständnisfrage zu form.close
Zitat:
Zitat:
Normalerweise willst Du ja den Modalresult hinterher auswerten, wie willst Du das denn machen, wenn sich das Fenster bereits aus dem Speicher verabschiedet hat?
Delphi-Quellcode:
frm := tMyForm.create(NIL);
try myvalue := frm.showmodal; finally frm.free; end; Zitat:
|
Re: Verständnisfrage zu form.close
ok, ichdanke dir
|
Re: Verständnisfrage zu form.close
öh, nur mal so als tipp, wie man ein Formular zum Verduften aus dem Speicher bewegt und ohne es an ein Parent zu hängen:
Also irgendwo rufe ich auf:
Delphi-Quellcode:
und das Formular wird einfach geöffnet (oh Wunder :mrgreen: )
TMeinFormular.Create( nil ).Show;
Das Formular braucht jetzt noch eine kleine Erweiterung im OnClose-Event:
Delphi-Quellcode:
und es verpufft nach dem Schließen aus dem Speicher.
procedure TMeinFormular.OnClose( Sender : TObject );
begin FreeOnRelease; Release; end; cu Oliver [edit] huch ... sehe gerade das ist für lazarus ... ich hoffe das geht da auch so :mrgreen: [/edit] |
Re: Verständnisfrage zu form.close
Das ist sogar noch etwas komplizierter als notwendig. Im OnClose-Event gibt es doch extra den var-Parameter Action. Wenn man diesen auf caFree setzt, wird das Formular freigegeben.
|
Re: Verständnisfrage zu form.close
Zitat:
|
Re: Verständnisfrage zu form.close
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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