Mein Ziel: Ich möchte, ausgehend von einem TFrame, eine eigene
VCL-Komponente erstellen. Mit eigenen Properties und Event-Handler.
Ich würde mich freuen wenn mir jemand erklären kann warum das benutzende Projekt die
DFM zur Kompilierzeit kennen muss. Und ob ich den Kompilierhinweis abstellen oder beruhigt ignorieren kann.
Ich habe eine Zeit lang mit Frame-Komponenten gearbeitet. Im Vergleich zu normalen Frames war das damals schon eine Verbesserung (die Dinger sind weniger fragil). Aber irgendwann war mir der Haufen an abhängigen Packages, die mehrfach verschachtelten Komponenten produzieren zu viel und ich bin dann auf ganz andere Techniken umgestiegen... Mal sehen woran ich mich noch erinnere..
Also das .dfm braucht z.B. der Compiler für die Komponente, da darin ja die Properties der Controls im Frame stehen.
Ohne die Informationen geht nix. Bei einem Formular in einem
Package ist das genauso. Ohne Positions-Informationen
sähe so ein Formular wirklich nicht gut aus.
Komerzielle Packages ohne Sourcecode haben deshalb auch immer die nötigen .DFMs bei den .DCUs dabei.
Da man beim Entwickeln .pas und das .dfm schlecht in unterschiedliche Pfade legen kann,
wird man bei Frame-Komponenten leider dahin genötigt den ganzen Sourcecode in den Library-Pfad zu stellen.
Wenn man die
dfm kopiert hat man sie doppelt auf dem Rechner und das produziert auf ganz natürliche Art und Weise
Ärger.
Arbeitet man ausserdem in einem Projekt, das den Frame selbst enthält sieht der Compiler das
DFM vermutlich doppelt.
Also: Frame als Komponente -> Frame aus den Projekten entfernen und nur im
Package der Komponente bearbeiten.