AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DFM Datei zur Laufzeit laden.

Ein Thema von QuickAndDirty · begonnen am 2. Apr 2009 · letzter Beitrag vom 2. Apr 2009
Antwort Antwort
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.884 Beiträge
 
Delphi 12 Athens
 
#1

DFM Datei zur Laufzeit laden.

  Alt 2. Apr 2009, 17:34
Hallo,
zur Zeit verwenden wir ein eigenes (rudimentäres) Modul zum Laden und Speichern des Aufbaus und der Einstellungen eines
individuell gestaltbaren Formulars...selbst das bisschen was es leistet hat ne menge Arbeit verschlungen.

Jetzt kam mir die Idee: Es müsste doch möglich sein dfm Dateien zur Laufzeit, wenn vorhanden, zu laden. So das jedes Formular im Programm im Nachhinein sehr weit customized werden kann.

Das heißt ich würde wenn ein Kunde es wünscht eine Kopie der Auslieferungsversion der DFM Datei mit Delphi ändern
, speichern und diese dann bereitstellen.
So das das Formular, aus dieser externen , evtl. gezipten DFM Datei geladen werden würde.

Ist das grundsätzlich möglich ? Oder habe ich da einen fiesen Denkfehler drin.

Welche Funktion lädt die DFM Dateien? Ees ist ein TReader soweit ich weiß, ist der im OnCreate der Formulare bereits verfügbar?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#2

Re: DFM Datei zur Laufzeit laden.

  Alt 2. Apr 2009, 17:47
Die DFM-Datei ist ein Abbild einer Klasse, die das Programm zur Kompilierzeit bereits kennt bzw. kennen muss. Z.B.:
Delphi-Quellcode:
object Form1: TForm1
  Caption = 'Formular 1'
  ...
  object Label1: TLabel
    Caption = 'Label 1'
    ...
  end
end
Die Eigenschaften können also geändert werden, z.B. die Beschriftung. Dem Programm unbekannte Klassen zu verwenden führt zum Fehler.

Siehe auch: Delphi-Referenz durchsuchenTReader.ReadComponent, Delphi-Referenz durchsuchenObjectTextToBinary.
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.884 Beiträge
 
Delphi 12 Athens
 
#3

Re: DFM Datei zur Laufzeit laden.

  Alt 2. Apr 2009, 17:52
JA schon klar,
Ich meine eher Veränderungen in Größe ,Position ,Schriftart, Farbe, Style, Ausrichtung etc.
Müste doch eigentlich möglich sein auf die Komfortable IDE als Formulardesigener zurrückgreifen zu können
die Formulare aber aus einer nicht einkomplierten Rescource zu laden.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: DFM Datei zur Laufzeit laden.

  Alt 2. Apr 2009, 18:02
Zitat von QuickAndDirty:
Müste doch eigentlich möglich sein auf die Komfortable IDE als Formulardesigener zurrückgreifen zu können
Ist von Codegear nicht vorgesehen und nicht gewünscht. Der DFM-Editor ist fest mit der IDE verknüpft und entsprechende Packages können nicht in eigenen Anwendungen verwendet werden. Aber diverse Komponentensammlungen haben z.B. den Objekt Inspector schon nachimplementiert.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: DFM Datei zur Laufzeit laden.

  Alt 2. Apr 2009, 18:03
Es geht wirklich, die dfm-Datei zur Laufzeit einzulesen; vor "vielen" Jahren hatte ich das zumindest teilweise realisiert. Aber ich weiß nicht mehr, wo und wonach ich in meinen alten Quellen suchen müsste. Ich schreibe das hier nur, um deutlich zu machen: Es lohnt sich, intensiv die Suche zu benutzen nach möglichst vielen verschiedenen Begriffen; du solltest Erfolg haben.

Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#6

Re: DFM Datei zur Laufzeit laden.

  Alt 2. Apr 2009, 18:08
Zitat von QuickAndDirty:
Ich meine eher Veränderungen in Größe ,Position ,Schriftart, Farbe, Style, Ausrichtung etc.
Das sollte gehen. In der DFM-Datei nachsehen, ob drin steht, was geändert werden soll.

Eine Sache fällt mir noch ein, über die man stolpern könnte: Der Name der Komponente. Mann kann quasi nicht zwei Formulare aus einer DFM-Datei erzeugen ohne den Namen gleichnamiger, bestehender Komponenten vorher zu ändern.

Zitat von Bernhard Geyer:
Ist von Codegear nicht vorgesehen und nicht gewünscht.
Aha. Aber warum sollte der Programmierer sein Programm für den Kunden nicht ändern dürfen?
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: DFM Datei zur Laufzeit laden.

  Alt 2. Apr 2009, 18:35
Zitat:
Aha. Aber warum sollte der Programmierer sein Programm für den Kunden nicht ändern dürfen?
kann er doch ... er braucht es nur neu zu kompilieren

also falls es nicht umbedingt die DFM sein muß, sondern ein anderes Format ... Stichwort Serialisierung (in meiner XML-Klasse hab ich grad die Form serialisiert ... wenn man dann bei der Deserialsierung die enthaltenen Klassen zur Verfügung stellt, wäre ein laden einer Form daraus schon möglich)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.884 Beiträge
 
Delphi 12 Athens
 
#8

Re: DFM Datei zur Laufzeit laden.

  Alt 2. Apr 2009, 21:23
Zitat von Bernhard Geyer:
Zitat von QuickAndDirty:
Müste doch eigentlich möglich sein auf die Komfortable IDE als Formulardesigener zurrückgreifen zu können
Ist von Codegear nicht vorgesehen und nicht gewünscht. Der DFM-Editor ist fest mit der IDE verknüpft und entsprechende Packages können nicht in eigenen Anwendungen verwendet werden. Aber diverse Komponentensammlungen haben z.B. den Objekt Inspector schon nachimplementiert.
Tja, ich muss ja nur die dfm wahlweise aus der rescource oder von Extern lesen können.
Dann kann ich mir mit der IDE etliche DFMs bauen und die als TEXT oder Zip files ausliefern und so das Programm nachtröglich
customizen.

muss nur beim laden des Formulars im create geprüft werden ob eine customize.dfm in den entsprechenden verzeichnis vorliegt, wenn ja dann muss eben diese verwendet werden, ansonsten die einkompolierte Ressource.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: DFM Datei zur Laufzeit laden.

  Alt 2. Apr 2009, 21:29
Schau dir mal DFM-Edit von _frank_ an
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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:27 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