Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit Formvererbung (https://www.delphipraxis.net/165021-problem-mit-formvererbung.html)

Codewalker 11. Dez 2011 12:31

Problem mit Formvererbung
 
Hallo zusammen.

Ich hab in eine Projekt folgende Konstellation:

Package A: Enthält die Klassen BaseChild und BaseParent (beides Forms mit ein paar Komponenten + Methoden). Kompiliert als "Entwurf und Laufzeit".
Das Package landet in einem Ordner "output", wo später auch die Anwendung hinsoll (soll mal mit Laufzeitpaketen laufen). Die Quellen von Package A sind im Suchpfad und im Bibliothekspfad eingestellt.

Hauptanwendung: Das Hauptformular soll von BaseParent aus Package A abgeleitet sein. Dazu habe ich die Unity von BaseParent in die Uses-Liste eingetragen, den Typ des Formulars von
Delphi-Quellcode:
class(TForm)
auf
Delphi-Quellcode:
class(TBaseParent)
geändert und in der DFM
Delphi-Quellcode:
object
durch
Delphi-Quellcode:
inherited
ersetzt.

Problem: Ich kann nicht mehr zurück auf die Formularansicht springen, weil er dann sagt:
Zitat:

Fehler beim Erzeugen von Formular: Vorfahr für 'TBaseParent' nicht gefunden
.

Es hilft auch nichts, das BaseParent vorher in der IDE zu öffnen. Wo ist das Problem?

Stevie 11. Dez 2011 12:35

AW: Problem mit Formvererbung
 
Übliches Problem, entweder fügst du die BaseParent explizit dem Projekt hinzu (in deinem Fall nicht wünschenswert, wenn du es über ein Package nutzen willst) oder du fügst die TBaseParent Form dem Repository hinzu (Kontextmenü, wenn du auf das Form klickst)

Codewalker 11. Dez 2011 20:36

AW: Problem mit Formvererbung
 
Danke, das mit der Objektverwaltung hast gebracht

BitBumper 24. Apr 2013 17:07

AW: Problem mit Formvererbung
 
Hatte ein ähnliches Problem mit derselben Meldung:
Auswahl einer Formularvererbung über "Datei|Neu|Vererbbare Elemente...|"
Ursache hierbei war jedoch:
Die im Dialog gezeigte Auswahlliste wird aus der *.dpr Datei aufgebaut.
Wenn in den PAS/DFM Dateien Namen geändert wurden und die *.dpr Datei es nicht korrekt mitbekommen hat, kann es sein, dass dort noch ein alter, ungültiger Name ist: Beim Versuch diese nicht vorhandene Formularresource zu vererben dann die Fehlermeldung.

Wer also meint er müsse händisch oder extern DFM Dateien anpassen darauf achten, dass die {...} Elemente in der DPR Datei auch angepasst wird.

Beispiel meines Fehlers:

Delphi-Quellcode:
BaseFr in '..\Framework\BaseFr.pas' {frBaseFr: TFrame},
musste lauten:

Delphi-Quellcode:
BaseFr in '..\Framework\BaseFr.pas' {frBase: TFrame},


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz