![]() |
Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
Hallo zusammen,
ich erzeuge mit folgenden Code Formulare
Delphi-Quellcode:
Jetzt möchte ich an einer anderen Stelle überprüfen ob das das Formular erzeugt ist. Das mache ich so
if not assigned(frmContentMantel) then
Application.CreateForm(TfrmContentMantel, frmContentMantel);
Delphi-Quellcode:
Das komische ist, das funktioniert unter Windows und OS X wunderbar. Nur unter iOS wird das
if not assigned(Application.FindComponent(formListe[n]) as TForm) then
begin continue; end;
Delphi-Quellcode:
ausgeführt.
continue;
Kann mir jemand helfen? Gruß Philip |
AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
Vermutlich wurde
![]() |
AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
Warum benutzt du Application.CreateForm?
Ich würde das niemals für dynamische Forms benutzen. Und was passiert wohl, wenn Embarcadero mal auf die Idee kommt diesen Forms z.B. einen anderen Owner verpasst? :roll: [edit] Zitat:
|
AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
|
AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
Wieso "Hmmm?" ?
Ach dort steht "Tipp: CreateForm erstellt das angegebene Formular nicht sofort." . |
AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
Verstehe noch nicht warum man Application.CreateForm nicht nehmen sollte.
Folgender Code ändert leider auch nix an dem Problem...
Delphi-Quellcode:
if not assigned(frmContentMantel) then
begin Application.CreateForm(TfrmContentMantel, frmContentMantel); //frmContentMantel := TfrmContentMantel.Create(Application); Application.RealCreateForms; end; |
AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
Zitat:
|
AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
In der Hilfe von
![]() Um zur Laufzeit weitere Formulare zu erstellen, verwenden Sie FMX.Forms.TForm.Create, FMX.Forms3D.TForm3D.Create oder TForm1.Create. |
AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
Delphi-Quellcode:
Habe probiert das Form automatisch erzeugen zu lassen. Da funktioniert das
implementation
uses contentMantel{frmContentMantel};
Delphi-Quellcode:
auch nicht.
Application.FindComponent('frmContentMantel')
|
AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
Wie Maverik schon schrieb. Wenn das Form lokal erzeugt wird und du dann von einer anderen Stelle versuchst darauf zuzugreifen, ist es von ARC möglicherweise schon wieder zerstört worden. Darum wird es mit FindComponent auch nicht gefunden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 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