![]() |
DFM-Mischmasch (inline, inherited und object)
Moin, seit Umstellung von D7 auf XE haben wir mit einigen/vielen Forms ein Problem, vorallem in Verbindung mit Frames.
So stellt Delphi ständig irgendwas von dem inherited/inline-Zeugt um, welches in den DFMs zu finden ist und danach geht oftmals irgerndwas nicht mehr, vorwiegend lassen sich diese Forumlare/Units dann nicht mehr laden. > Komponente soundso existiert bereits, bzw. der DFM-Loader im Programm verreckt mit unverständlichen Fehlermeldungen. PS: Ein abgeleitetes Frame, wo wir das leider zu oft merken, liegt in einem Packages. Was ist nun der Unterschied zwischen inherited, inline und object, innerhalb der DFMs und wann ist was sinnvoll? Wie kann man Delphi daran hindern irgendwas einfach so umzustellen? Weil meist merkt man das erst, wenn man das nächste Mal versucht soeine unit zu öffnen. |
AW: DFM-Mischmasch (inline, inherited und object)
Ein ähnliches Problem habe ich gehabt, aber unter Delphi 2009. Ich habe eine ganze Reihe von Frames genutzt, um mein Projekt ein wenig zu modularisieren. Dabei habe ich eine Klasse TBasicFrame gebaut (von TFrame abgeleitet), damit ich bei allen Frames bestimmte Methoden vorraussetzen kann. Sobald ich Vererbung in Verbindung mit Frames genutzt habe, war Delphi nicht mehr in der Lage, die korrekt zu laden (Property XYZ existiert nicht, usw.), weil es die Frames fälschlicherweise als Forms interpretiert hat. Abhilfe war immer, die Deklaration wieder auf TForm zu ändern (kompiliert natürlich nicht), das Projekt zu schließen, neu zu öffnen, alles wieder auf TBasicFrame zu ändern und dann zu arbeiten. Ich habe auch den Tipp bekommen inherited davor zu setzen, aber das hat nichts gebracht.
Ich bin letztlich auf TJvEmbeddedFormPanel und TJvEmbeddedFormLink ausgewichen. Da kann ich frei vererben, der Designer kommt nicht durcheinander und es macht, was ich brauche. Je nach Größe des Projekts ist das aber sicher keine schnelle Lösung. |
AW: DFM-Mischmasch (inline, inherited und object)
object sind nicht vererbte Forms/Frames
inherited sind vererbte Forms/Frames inline sind die auf Forms abgelegten Frames Den von Dir beschriebenen Ärger habe ich nie erlebt weil ich schon unter D5 wegen des ständigen Ärgers mit Frames auf zur Laufzeit gedockte Forms umgestiegen bin. |
AW: DFM-Mischmasch (inline, inherited und object)
inline - sind die auf form abgelegten frames, das erklärt es.
da delphi beim compilieren ja gern die packages raushaut, vor allem wenn diese voneinander abhängig sind und gröffnete forms da sind, werden aus den frames, welche als komponenten in den packages sind, wieder frames und somit werden die dfm umgeschrieben. => beim compilieren darauf achten die forms geschlossen zu halten, wenn man packages compiliert welche komponenten aus den zu compilierenden forms enthalten. ein kurzer punkt: packages funktionieren eigentlich einwandfrei, man muß nur ein wenig aufpassen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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