![]() |
Form richtig destroyen ?
Hallo zusammen,
ich mache folgendes:
Delphi-Quellcode:
Form wird angezeigt.
If FM_AV = nil then Application.CreateForm(TFM_AV, FM_AV);
FM_AV.Show; Danach mache ich folgendes:
Delphi-Quellcode:
Form wird entfernt.
procedure TFM_AV.FormClose(Sender: TObject; var Action: TCloseAction);
begin FM_AV.Destroy; end; Wenn ich nun wieder die Form anzeigen lassen will, klappt das nicht mehr, warum ? Gruss Holger |
Re: Form richtig destroyen ?
eigentlich
Delphi-Quellcode:
Form.Release;
Form:=nil |
Re: Form richtig destroyen ?
Delphi-Quellcode:
reicht
procedure TFM_AV.FormClose(Sender: TObject; var Action: TCloseAction);
begin Action := caFree; end; Danach existiert das Fenter ja nicht mehr |
Re: Form richtig destroyen ?
Vielen dank. Ich muss auf jeden Fall Form := nil machen, egal welche Methode ich von euch benutze.
Danke Holger |
Re: Form richtig destroyen ?
Oder auf das automatische Freigeben verzichten und FreeAndNil() verwenden
|
Re: Form richtig destroyen ?
Das klappt auch. Vielen dank.
|
Re: Form richtig destroyen ?
Delphi-Quellcode:
Modal angezeigte Fenster sollte man auf keinen Fall mit caFree freigeben.
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin if not (fsModal in FormState) then Action := caFree; end; procedure TForm1.FormDestroy(Sender: TObject); begin FForm1 := nil; end; Das führt zu willkürlichen Schutzverletzungen in der Methode ShowModal. In diesem Fall nach ShowModal das Formular selbst freigeben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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