AGB  ·  Datenschutz  ·  Impressum  







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

Frame Vererbung

Ein Thema von TurboMagic · begonnen am 28. Mai 2025 · letzter Beitrag vom 29. Mai 2025
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.084 Beiträge
 
Delphi 12 Athens
 
#1

Frame Vererbung

  Alt 28. Mai 2025, 22:04
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...
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Frame Vererbung

  Alt 28. Mai 2025, 23:03
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 unitname IN 'dateipfad{variablenname} ordentlich drinstehn.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.691 Beiträge
 
Delphi 12 Athens
 
#3

AW: Frame Vererbung

  Alt 28. Mai 2025, 23:46
In der DPR sollte aber vorher auch der USES-Import unitname IN 'dateipfad{variablenname} ordentlich drinstehn.
Bei einem Frame sieht das geringfügig anders aus: unitname IN 'dateipfad{variablenname: TFrame}
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.084 Beiträge
 
Delphi 12 Athens
 
#4

AW: Frame Vererbung

  Alt 29. Mai 2025, 10:12
In der DPR sollte aber vorher auch der USES-Import unitname IN 'dateipfad{variablenname} ordentlich drinstehn.
Bei einem Frame sieht das geringfügig anders aus: unitname IN 'dateipfad{variablenname: TFrame}
Danke auch mal dafür, eben nachgeschaut und bei einem Frame war der Variablenname noch falsch Frame1 oder so.
Jetzt muss ich aber Himitsu's Lösungsansatz probieren, da das den Fehler noch nicht wirklich beseitigt hat.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.084 Beiträge
 
Delphi 12 Athens
 
#5

AW: Frame Vererbung

  Alt 29. Mai 2025, 10:17
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.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
721 Beiträge
 
Delphi 12 Athens
 
#6

AW: Frame Vererbung

  Alt 29. Mai 2025, 12:05
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.
Hast Du mal die dfm-Files der betroffenen Frames kontrolliert? Sie müssen mit "inherited" anfangen, nicht mit "object". Das wird oft vergessen zu ändern wenn man frames, forms, datamodules im Code-Editor auf einen anderen Vorfahren umbiegt...
Peter Below
  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 16:04 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