![]() |
Form zur Laufzeit schließen
Folgendes:
Ich erzeuge ein Form zur Laufzeit:
Delphi-Quellcode:
mit einem button drauf:
frm_GraphEdit := TForm.Create(nil);
with frm_GraphEdit do begin name := 'frm_GraphEdit'; Position := poScreenCenter; BorderStyle := bsDialog; Width := 200; OnDestroy := frm_GraphEditClose; end; frm_GraphEdit.ShowModal;
Delphi-Quellcode:
Folgendes Ereignis wird ausgelöst wenn man auf den Botton klickt:
btbtn_abort := TBitBtn.Create(frm_GraphEdit);
With btbtn_abort do begin Parent := frm_GraphEdit; Name := 'btbtn_abort'; OnClick := CloseFrm_GraphEdit; end;
Delphi-Quellcode:
Wenn ich das Form mit ShowModal aufrufe und schließen möchte bekomme ich folgende Exception:
procedure TFrm_main.CloseFrm_GraphEdit(Sender : TObject);
begin frm_GraphEdit.Destroy; end; .... procedure TFrm_main.frm_GraphEditClose(Sender : TObject); begin frm_GraphEdit := nil; end; "Invalid Variant Operation" Wenn ich aber das Form mit Show aufrufe nicht :wall: Woran kann das liegen? |
Re: Form zur Laufzeit schließen
ich habe eine Lösung weis aber noch nicht genau warum sie funktioniert:
ich rufe beim Drücken auf den Button nicht
Delphi-Quellcode:
sondern
frm_GraphEdit.Destroy;
Delphi-Quellcode:
Release gibt das Formular erst frei, nachdem die Ausführung der Ereignisbehandlungsroutinen des Formulars und seiner untergeordneten Komponenten beendet ist. Die Methode stellt auch sicher, daß alle Botschaften in der Ereigniswarteschlange des Formulars vor dessen Freigabe bearbeitet werden. In allen Ereignisbehandlungsroutinen sollte Release anstelle von Free verwendet werden, um Zugriffsverletzungen zu vermeiden.
frm_GraphEdit.Release;
Mist die Hilfe sollte man mal Lesen: Rufen Sie Destroy nicht direkt auf. Verwenden Sie statt dessen die Methode Release, die eine CM_RELEASE-Botschaft an das Formular sendet. In der zugehörigen Behandlungsroutine wird dann die Methode Free aufgerufen, die ihrerseits Destroy aufruft. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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