Delphi-PRAXiS
Seite 2 von 2     12   

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 vererbtes Formular - abstrakter Fehler (https://www.delphipraxis.net/206824-vererbtes-formular-abstrakter-fehler.html)

t2000 3. Feb 2021 17:32

AW: vererbtes Formular - abstrakter Fehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Uwe Raabe (Beitrag 1482090)
Kannst du mal die dproj-Datei des Projekts anhängen oder wenigstens die Einträge der beiden Forms zeigen?


Ich weiß nicht, ob ich das verstehe. Die .dproj Datei hat über 1000 Zeilen.
Die Basis Form: "VCL.MainForm" taucht dort gar nicht auf. Die abgeleitete Form "Person.Main" schon.

Wenn ich die "Person.Main" aus der .dsk Datei entferne, kann ich Delphi öffnen. Wenn dann "VCL.MainForm" schon offen ist, kann ich auch "Person.Main" öffnen.

Ich hänge die dproj-Datei an.

himitsu 3. Feb 2021 18:21

AW: vererbtes Formular - abstrakter Fehler
 
Man kann seinen Vorfahren entweder versuchen in der Objektgalerie einzutragen (wie z.B. die anderen Formular/Dialog-Vorlagen in Datei > Neu > Weitere > Delphi-Projekte > Einzeldateien)

Und bei uns sind alle Komponenten über DesignTime-Packages im Delphi drin.
Dort kann man seine Vorfahren via RegisterClass anmelden. (ist mehr Alibi ... schaden kann es nicht, aber ich bin mir "fast" sicher, dass es nichts hilft)
Bei uns gibt es da aber kaum Probleme und wir haben eine mehrstufige Vererbung mit aktuell bis zu 4 Vorfahren.


Ja, wenn man die Units von Datenmodulen und Vererbungs-Vorfahren geöffnet hat, dann geht es eigentlich immer.
Sonst muß man hoffen Delphi findet den Vorfahren-Typen, z.B.
* in einer geöffneten Unit
* in der IDE geladen (DesignTime-Package mit eventueller Klassenregistrierung)
* in der Objektgalerie
* in einer Unit im Projekt/Projektgruppe
* in einer Unit in den Suchpfaden
* ...

Es scheint aber auch einen Unterschied zu machen, wie man eine Form-Unit öffnet.
* Doppelklick/Kontextmenü im Projektmanager
* Datei > Öffnen
* Strg+Linksklick
* Kontextmenü > Deklaration suchen (ja, das steht als Einzelpunkt, da es via Strg+Linksklick oft anders reagiert, obwohl es die "gleiche" Funktion ist)
* IDE-Insight (F6)
Da bekommt man teilweise eine vererbte Unit auf und beim Anderen gehts nicht, obwohl es rein logisch eigentlich keinen Unterschied machen sollte.

Uwe Raabe 3. Feb 2021 21:25

AW: vererbtes Formular - abstrakter Fehler
 
Zitat:

Zitat von t2000 (Beitrag 1482156)
Die Basis Form: "VCL.MainForm" taucht dort gar nicht auf.

Doch:
XML-Code:
        <DCCReference Include="..\..\VCL\VCL.MainForm.pas">
            <Form>MainForm</Form>
            <FormType>dfm</FormType>
        </DCCReference>
Zitat:

Zitat von t2000 (Beitrag 1482156)
Ich hänge die dproj-Datei an.

Sieht soweit erstmal OK aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr.
Seite 2 von 2     12   

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