AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung iOS Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden
Thema durchsuchen
Ansicht
Themen-Optionen

Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

Ein Thema von Darlo · begonnen am 14. Jan 2016 · letzter Beitrag vom 14. Jan 2016
Antwort Antwort
Seite 1 von 2  1 2      
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 13:06
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;
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.165 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 13:16
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;
frmContentMantel? Wo ist das definiert? Lokal? -> ARC!
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 13:20
Delphi-Quellcode:
implementation
uses
  contentMantel{frmContentMantel};
Habe probiert das Form automatisch erzeugen zu lassen. Da funktioniert das Application.FindComponent('frmContentMantel') auch nicht.
Philip
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 13:23
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.
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 13:40
Habe probiert das Form automatisch erzeugen zu lassen. Da funktioniert das Application.FindComponent('frmContentMantel') auch nicht.
Dann dürfte doch das ARC keinen Einfluss haben, oder?
Philip
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 13:18
In der Hilfe von http://docwiki.embarcadero.com/Libra...ealCreateForms steht:
Um zur Laufzeit weitere Formulare zu erstellen, verwenden Sie FMX.Forms.TForm.Create, FMX.Forms3D.TForm3D.Create oder TForm1.Create.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.758 Beiträge
 
Delphi 12 Athens
 
#7

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 14:22
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;
Du sollst RealCreateForm gar nicht aufrufen. Es hat schließlich einen Grund, warum das je nach OS an anderen Stellen passiert. Warum hälst du dich nicht einfach an die Vorgabe, die in der Doku beschrieben ist und auf die schon merhfach hingewiesen wurde?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.165 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 14:23

Du sollst RealCreateForm gar nicht aufrufen. Es hat schließlich einen Grund, warum das je nach OS an anderen Stellen passiert. Warum hälst du dich nicht einfach an die Vorgabe, die in der Doku beschrieben ist und auf die schon merhfach hingewiesen wurde?
Eben WOFÜR auch...

Delphi-Quellcode:
Foo := TFoo.Create(NIL);
Foo := TFoo.Create(Application);
und gut ist...

Warum überhaupt ein Find?
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 14:52
Muss mir wohl eingestehen dass hier ein Designfehler vorliegt den ich mir nicht wieder gerade basteln kann... auf alle Fälle nicht crossplatform.
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.758 Beiträge
 
Delphi 12 Athens
 
#10

AW: Form zur Laufzeit erzeugen und mit assigned prüfen ob vorhanden

  Alt 14. Jan 2016, 14:59
Du kannst die aktuell vorhandenen Forms auch über Screen.Forms /Screen.FormCount durchwandern und schauen ob du was passendes findest.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16: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