Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Privat deklarierte Klasse ableiten

  Alt 17. Nov 2017, 13:36
Delphi-Version: XE8
Hi zusammen
Dieser Thread ist im Grunde die Fortsetzung von hier. Für einen neuen Thread hab ich mich entschlossen, weil das Thema unabhängig vom verlinkten Thread interessant sein könnte.
Der da besprochene TPDFiumFrame deklariert ein Klasse TPDFPage in einem private-Abschnitt - es gibt, mir unverständlich, weshalb, 2 davon. TPDFiumFrame legt in einer TList-Instanz ein Handle auf eine TPDFPage-Instanz, bzw auf die da repräsentierte PDF-Seite ab, Diese Liste ist public deklariert, kann also von aussen angesprochen werden.

Tja, mein erster Ansatz war nun, in der Mainform, die mehrere Instanzen dieses TPDFiumFrames nutzt, eine neue Instanz der Klasse TPDFPage zu erstellen. Das ging aber gründlich schief, da in der von TPDFiumFrame benutzten Unit TSynPDF auch eine Klasse TPDFPage deklariert ist, die aber von TPDFDictonary abgeleitet ist.

Nun bin ich auf die Idee gekommen, im Public-Abschnitt von TPDFiumFrame eine neue Klasse TPDFDocumentPage zu erstellen und die von der privaten Klasse TPDFiumFrame.TPDFPage abzuleiten. Dabei soll TPDFDocumentPage keine neuen Member einführen.

Die Deklaration wäre auf dies Weise sehr einfach:
Delphi-Quellcode:
type
TPDFDocumentPage = class(TPDFiumFrame.TPDFPage)
  private
  public
end;
TPDFiumFrame.TPDFPage zu schreiben, ist mir jetzt gerade eingefallen - sollte im TPDFiumFrame SynPDF im Uses-Teil aufgeführt sein, könnte es Konflikte geben oder sogtar von einer völlig falschen Klasse abgeleitet werden.

Tja, und jetzt kommt mein eigentliches Problem: Irgendwo hab ich mal mitgekriegt, dass in einer abgeleiteten Komponente/Klasse Member ohne explizite Typangabe aufgeführt werden können, weiss aber nicht mehr, woher ich das habe. Hier, bei Delphi-Treff und in der EntwicklerEcke habe ich dazu nichts gefunden. Auch meine klugen Bücher schweigen sich darüber aus.
Daher wollte ich bei Embarcadero nachsehen, aber wies ausschaut, haben die ihren Server geade heute ins Nirwana geschickt.

Weiss jemand mehr?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat