Ich habe mir für ein Anwendung ein Basis Frame mit interface und
Standart-Funktionen gebastelt.
Davon abgeleitet habe ich neue Frames, die ich dann mit Leben fülle.
Wenn ich allerdings das Projekt lade, und dann eins der abgeleiteten Frame versuche zu öffnen, dann bekomme ich den Fehler "
Error creating form in NeuesFrame1.dfm: Ancestor for "TmyBaseFrame" not found" (Namen wegen Schutz der Persönlichkeitsrechte der Frames geändert, ich will nicht, dass die im Verzeichnis gemobbt werden
).
Habe ich das Basis Frame allerdings geöffnet, geht es ohne Probleme.
Alle Frames sind im Projekt verfügbar und in der
DFM der abgeleiteten Frames startet es mit
inherited, nicht
object.
Ich nutze Delphi 11.3
Weiss einer, wie man das wegbekommt ?
Sowas kann passieren wenn man den vorgesehenen Mechanismus der
IDE zum Erstellen abgeleiteter Frames (oder auch Forms/Datamodules) umgeht. Wenn man wie vorgesehen über File -> New -> Others -> inheritable items (d. h. den repository Dialog) geht erzeugt die
IDE nämlich im DPROJ-File des Projektes Einträge wie
Code:
<DCCReference Include="LM_AdmeTestDetailFrameU.pas">
<Form>LM_AdmeTestDetailFrame</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
Der kritische Teil ist die Angabe unter dem DesignClass-Node, der fehlt mitunter, wenn man eine abgeleitete Klasse "zu Fuß" erzeugt. Das führt auch dazu, dass die Frameklasse in der Liste der verfügbaren Frames für das Projekt nicht auftaucht.