![]() |
Form wird nicht gefunden
Ich erzeuge zur Laufzeit eine Form wie folgt;
Delphi-Quellcode:
Dann suche ich nach dieser wie folgt;
m1_form := Tm1_form.create(m1_form);
Delphi-Quellcode:
procedure Ttb_form.Button1Click(Sender: TObject);
var AForm: TForm; begin AForm := TForm(Application.FindComponent('m1_form')); if AForm = nil then ShowMessage('Nicht gefunden!'); end; Aber leider finde ich die Form nicht. Wichtig ist das an der art des findens nichts geändert werden darf! |
Re: Form wird nicht gefunden
Wenn Du willst das das Formular in der Application-Forms-Auflistung zu finden ist mußt du es auch dort erstellen:
Delphi-Quellcode:
Application.CreateForm(Tm1_form, m1_form);
|
Re: Form wird nicht gefunden
Du kannst auch nicht nach der Bezeichnung der Referenzvariable sondern nur nach dem Namen der Form suchen:
Delphi-Quellcode:
[Edit:Zitiert ohne genau zu Lesen. Sich selbst als Owner geht natürlich nicht]
m1_form := Tm1_form.create(Application);
m1_form.Name := 'm1_form'); |
Re: Form wird nicht gefunden
Ich nahm die Zeile
Delphi-Quellcode:
aus der DPR raus, da ich mit der hauptform wäredn des create auf ide Form zugreife und es so immer Zugrifsverletzungen gab.
Application.CreateForm(Tm1_form, m1_form);
also schrieb ich in der create der hauptForm
Delphi-Quellcode:
das funzte nämlich...
m1_form := Tm1_form.create(m1_form);
wenn ich in der Create der Hauptform
Delphi-Quellcode:
schreibe wird nur die Form "m1_form" angezeigt die Hauptform nicht
Application.CreateForm(Tm1_form, m1_form);
|
Re: Form wird nicht gefunden
das hier macht keinen Sinn:
Delphi-Quellcode:
Warum übergibst du m1_form als Owner wenn du es ja gerade erst erstellst und es somit zu dem Zeitpunkt unbestimmt ist?
m1_form := Tm1_form.create(m1_form);
Im besten Fall ist m1_form zu diesem Zeitpunkt nil und somit kann man auch gleich:
Delphi-Quellcode:
schreiben.
m1_form := Tm1_form.create(nil);
|
Re: Form wird nicht gefunden
Zitat:
|
Re: Form wird nicht gefunden
du musst das von "Bernhard Geyer" und "mkinzler" kombinieren. Mit Application.FindComponent findest du nur die Forms welche als Owner Application bekommen haben.
Also entweder so:
Delphi-Quellcode:
oder
m1_form := Tm1_form.create(Application);
m1_form.Name := 'm1_form';
Delphi-Quellcode:
Application.CreateForm(Tm1_form, m1_form);
m1_form.Name := 'm1_form'; |
Re: Form wird nicht gefunden
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 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