![]() |
Typen, Records einer Klasse vererben ?
In einer Klasse wurde ein Record deklariert und wird innerhalb dieser Basisklasse benutzt.
In der Ableitung dieser Klasse ist in der eig. Anwendung der Record nicht mehr sichtbar. Als Workaround muss ich nun zusatzlich zur Unit mit der abgel. Klasse noch die Unit der Basisklasse hinzufügen. Wie lässt sich so ein Record der Basisklasse also "weitervererben" ? Ich benutze ausschl. D7pro. |
AW: Typen, Records einer Klasse vererben ?
Zitat:
Delphi-Quellcode:
type TMyRec = record
//[...] end; type TBase = class(TObject) //[...] protected FMyRec : TMyRec; //[...] end; |
AW: Typen, Records einer Klasse vererben ?
Zitat:
|
AW: Typen, Records einer Klasse vererben ?
Zitat:
|
AW: Typen, Records einer Klasse vererben ?
Zitat:
|
AW: Typen, Records einer Klasse vererben ?
Der Record ist als Typ in der Basisklasse deklariert und wird u.a. als Ruckgabewert einer Funktion (A) innerhalb der Basisklasse benutzt. In meiner Anwendung benutze ich aber nur noch die abgeleitete Klasse. In der Anw.-Implementation möchte ich aber die Funktion(A) benutzen, kann ich aber keine Variable von diesem Record-Typen solange deklarieren, bis ich wieder die Unit mit der Basisklasse und dem Record-Typen hinzufüge.
Den Typen in eine eigne Unit zu verschieben, habe ich auch schon gedacht. Aber ich sehe diesen Record-Typ nur im Kontext der Basisklassen und deren Ableitungen. |
AW: Typen, Records einer Klasse vererben ?
Wo ist das Problem?
Delphi-Quellcode:
Der Record ist für jeden sichtbar, der die Unit BasisKlasse einbindet.
unit BasisKlasse;
type TMeinRecord = record ... end; TBasisKlasse = class(...) end; |
AW: Typen, Records einer Klasse vererben ?
Delphi-Quellcode:
Oder
unit BasisKlasse;
type TBasisKlasse = class(...) private type TMeinRecord = record end; private FMeinRecord: TMeinRecord; public ... end;
Delphi-Quellcode:
statt
protected
Delphi-Quellcode:
, bzw.
private
Delphi-Quellcode:
oder gar
strict protected
Delphi-Quellcode:
.
strict private
Man braucht nur mindestens ein Delphi 2006 / TDE |
AW: Typen, Records einer Klasse vererben ?
@shmia
Genauso habe ich es in der Basisklasse gemacht, der Compiler kennt in der 3.Unit wo ich Anwendung implementiere und nur die Unit der Ableitung einbinde, den Record-Typen aber nicht. @himitsu Habe nur D7 pro |
AW: Typen, Records einer Klasse vererben ?
|
AW: Typen, Records einer Klasse vererben ?
Zitat:
Dies ist in der VCL ebenfalls so. Wenn du z.B. die Unit ADODB einbindest, dann musst du fast immer auch die Unit DB einbinden weil du Zugriff auf Datentypen TDataset, TField,... benötigst. |
AW: Typen, Records einer Klasse vererben ?
Herzlichen Dank für das rege Feedback.
Ich hab den Record in eine Basis-Unit für alle möglichen Typen und Records verschoben. Diese wird sowieso überall eingebunden, in den Basisklassen wie auch in der späteren Anwendungsentw. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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 by Thomas Breitkreuz