![]() |
Frame Vererbung
Hallo,
ich bastle gerade was mit Frames und Vererbung. Zuerst dachte ich, dass alles passt, bis ich die IDE neu starten musste. Beim Laden des Projektes gab es genau für diese Frames Gemecker, es compiliert aber und läuft wie gewünscht. Nur wie das Gemecker abstellen? Was hab' ich gemacht? 1. Einen Basis Frame designed, der einen bestimmten Mechanismus umsetzt 2. Ein paar bereits existierende Frames darauf umgebaut wie folgt: 3. Jeweils die Unit des Basis Frames in interface uses aufgenommen 4. Im jeweils existierenden Frame nicht mehr von TFrame geerbt 5. Und dort jeweils das im Basis Frame schon implementierte CreateParams überschrieben. Beim Laden des Projekts kommt jetzt immer: Fehler beim Lesen von frm_MyFrame.TabOrder: Eigenschaft TabOrder existiert nicht... |
AW: Frame Vererbung
Wenn der Formdesigner nicht klar kommt, dann spingt er immer auf TForm als Vererbungsbasis zurück.
Bei vererbten Forms fehlt dann alles vom Vorfahren und bei Frames versucht es halt die Frame-DFM über eine TForm zu zerrren, anstatt einen TFrame. Zur Laufzeit ist es egal, da die Klassenvererbung den Ton angibt (RTTI/TypeInfo), aber im FormDesigner wird halt eine generische Basisform genommen (direkt TForm oder TFrame), wenn der Vorfahre aber in der IDE registriert ist und die Config (DPROJ) passt, dann kann es auch der echte Vorfahre sein. In der DPROJ sollte es zur Unit einen Type-Unterknoten geben, ob der Vorfahre (hier "Frame") drin steht. Entferne mal die Unit aus dem Projekt (im ProjekManager) und füge sie dann neu hinzu. In der DPROJ sollte dann hoffenlitch das wider richtig eingefügt sein. In der DPR sollte aber vorher auch der USES-Import
Delphi-Quellcode:
ordentlich drinstehn.
unitname IN 'dateipfad' {variablenname}
|
AW: Frame Vererbung
Zitat:
Delphi-Quellcode:
unitname IN 'dateipfad' {variablenname: TFrame}
|
AW: Frame Vererbung
Zitat:
Jetzt muss ich aber Himitsu's Lösungsansatz probieren, da das den Fehler noch nicht wirklich beseitigt hat. |
AW: Frame Vererbung
Nix gut...
Habe alle diese Frames mal entfernt und neu hinzugefügt. Es kommt für jeden die Fehlermeldung mit dem TabOrder und in der DRP fehlt dann meistens alles in { } dahinter oder in einem Fall hat die IDE Frame1 dort rein geschrieben, was aber definitiv dwer falsche Name ist. |
AW: Frame Vererbung
Zitat:
|
AW: Frame Vererbung
Hallo,
danke das muss ich vermutlich tun. Nur welche müssen alle auf inherited? Nur die, die direkt von meinem Basis-Frame erben oder auch mein Basisframe, welches von TFrame abstammt? |
AW: Frame Vererbung
Hallo,
so, jetzt wirklich alle nochmal raus, in den dfms inherited statt object reingeschrieben und nochmal rein. Nun lädt es ohne Fehler! Danke an alle! |
AW: Frame Vererbung
Dann hast du die vererbten Frames offenbar nicht korrekt erstellt: Im Menü Datei -> Neu - Weitere -> Delphi-Projekte -> Vererbbare Elemente und dort den Basis-Frame auswählen und auf OK klicken.
|
AW: Frame Vererbung
Hallo,
ja Uwe, du hast mich ertappt! Das hatte ich nämlich nicht gewußt, dass das so geht. Jetzt klappt's aber. Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 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