AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Form ohne dfm / fmx - Datei erstellen

Ein Thema von Harry Stahl · begonnen am 14. Jul 2018 · letzter Beitrag vom 16. Jul 2018
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.477 Beiträge
 
Delphi 11 Alexandria
 
#1

Form ohne dfm / fmx - Datei erstellen

  Alt 14. Jul 2018, 20:11
Wie kann man eine Form ohne Formdatei (.dfm / .fmx) erstellen?

Wenn ich unter FMX

F_Help := TCommonCustomForm.Create(Application); aufrufe, kann ich die Form dann zwar anzeigen, aber zur Laufzeit eingefügte Komponenten werden nicht angezeigt.

Das gleiche würde ich gerne auch für ein VCL-Formular machen.

Anliegend demo.
Angehängte Dateien
Dateityp: zip CodeToFrom.zip (59,3 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Form ohne dfm / fmx - Datei erstellen

  Alt 14. Jul 2018, 21:24
Schau Dir mal von Moderator Luckie die non-Vcl Sachen an, das kannst Du auch aus Vcl aufrufen um was auch immer zu erstellen.

Hilft Dir das oder redest Du von einer Vcl Form die man dynamisch erzeugt und mit dynamisch erzeugten Komponenten bestückt?

Machbar ist beides.

Meine erste Idee für Vcl Blanko Form wäre tatsächlich eine Blanko-Form ins Projekt einbinden, von mir aus als Resource und die in so viele neue Kopien ableiten wie Du benötigst, was auf der Blanko-Form drinnen ist musst Du dann halt zur Laufzeit bestimmen.
Manche Komponenten benötigen gewisse Grundwerte um überhaupt zu funktionieren, da muss man sich halt Stück für Stück ranpirschen bis man es perfekt hat, Control für Control, kann dauern aber wenn man die Grundprinzipien einmal drinnen halt klappt es recht gut (das gilt für beides Vcl und auch non-Vcl).

Ps: Nachteil von sowas, Du musst jedes kleine Detail selber einpflegen, vor allem die Ereignisse mit einander verknüpfen ....
Gruß vom KodeZwerg

Geändert von KodeZwerg (14. Jul 2018 um 21:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.477 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Form ohne dfm / fmx - Datei erstellen

  Alt 14. Jul 2018, 22:27
Hilft Dir das oder redest Du von einer Vcl Form die man dynamisch erzeugt und mit dynamisch erzeugten Komponenten bestückt?

Ps: Nachteil von sowas, Du musst jedes kleine Detail selber einpflegen, vor allem die Ereignisse mit einander verknüpfen ....
Ja, genau darum geht es. Deswegen würde ich gerne eine schon bestehende Form "umwandeln" lassen, damit ich das nicht alles selber manuell machen muss (siehe hier der andere Thread, der damit in Verbindung steht).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#4

AW: Form ohne dfm / fmx - Datei erstellen

  Alt 15. Jul 2018, 01:39
Es ist ganz einfach, bei Allem, was ein TForm-Nachfahre ist, wird immer versucht eine gleichnamige DFM-Ressource zu laden.

Aber man hätte hier auch auf eine Idee kommen können: Nachsehen was es noch für Konstruktoren gibt.
Hier im Forum suchenTCustomForm.CreateNew

Gut, es wäre auch gegangen, wenn du einfach eine leere Ressource genommen hättest.
Delphi-Quellcode:
object CommonCustomForm: TCommonCustomForm
end
Oder nicht TForm, sondern TCustomForm als Vorfahre verwenden. (aber ich glaube die Prüfung+DFMLaden war als ClassType <> TForm im TCustomForm und nicht im TForm )
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Jul 2018 um 01:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.477 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Form ohne dfm / fmx - Datei erstellen

  Alt 15. Jul 2018, 13:40
OK, Danke.

Mit

TForm.CreateNew(Application); funktioniert es, man benötigt keine DFM /FMX Datei.

Cool, so kann ich nun eine Unit verwenden, die auf allen Delphi-Versionen ab Delphi 5 bis heute sowohl unter VCL als auch unter FMX funktioniert, ohne dass ich - wie sonst mit dem Formular - Probleme mit irgendwelchen unterschiedlichen / fehlenden Properties bekomme.

Das kann man natürlich nur mit "Forms" mit wenigen Komponenten und Events machen, sonst ist es schon unverhältnismäßig aufwendig, das alles zu Fuß zu programmieren, denn man muss schon einige IFDEFS verwenden...
  Mit Zitat antworten Zitat
jziersch

Registriert seit: 9. Okt 2003
Ort: München
240 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Form ohne dfm / fmx - Datei erstellen

  Alt 16. Jul 2018, 05:37
Das kann man natürlich nur mit "Forms" mit wenigen Komponenten und Events machen, sonst ist es schon unverhältnismäßig aufwendig, das alles zu Fuß zu programmieren, denn man muss schon einige IFDEFS verwenden...
Vielleicht ist GExperts ( http://www.gexperts.org/tour/components_to_code.html ) hier hilfreich. Es erstellt Dir den code welcher für bestimmte Komponenten aufzurufen wäre. Im übrigen: Bei manchen Komponenten muss man "Loaded" aufrufen, sonst funktionieren sie nicht.

Es gibt übrigens noch "CreatedParented" - damit kann man ein Formular an ein anderes Fensterhandle anbinden. Das fand ich öfters sehr praktisch.

Viele Grüsse,
Julian
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz