Ich habe mal ein Teilbereich meines an anderer Stelle besprochenen Problems in das richtige Thema sortiert um das ganze übersichtlicher zu gestalten.
Es geht darum, das ich eine Item-Klasse habe
Code: Alles auswählen
TBaseContactTitleClass = class of TBaseContactTitle;
{ Generated Class: TBaseContactTitle}
TBaseContactTitle = class(TtiObject)
protected
FTitle: String;
FBusinessList: TBaseBusinessList;
procedure SetTitle(const AValue: String); virtual;
procedure SetSearchTitle(const AValue: String); virtual;
procedure SetBusinessList(const AValue: TBaseBusinessList); virtual;
public
procedure Read; override;
procedure Save; override;
published
property Title: String read FTitle write SetTitle;
end;
welche in einer Listklasse gesammelt wird:
Code: Alles auswählen
TBaseContactTitleList = class(TtiMappedFilteredObjectList)
private
class var FItemClass: TBaseContactTitleClass;
protected
procedure SetItems(i: integer; const AValue: TBaseContactTitle); reintroduce;
function GetItems(i: integer): TBaseContactTitle; reintroduce;
public
property Items[i:integer] : TBaseContactTitle read GetItems write SetItems;
procedure Add(AObject: TBaseContactTitle); reintroduce;
procedure Read; override;
procedure Save; override;
class property ItemClass: TBaseContactTitleClass read FItemClass write FItemClass;
{ Return count (1) if successful. }
function FindByOID(const AOID: string): integer;
end;
Nun möchte ich beide Klassen in eine anderen Unit ableiten, da sie in der Quelle nicht verändert werden dürfen.
Es sollen dann weitere Properties, Funktionen und Prozeduren in der Item-Klasse hinzugefügt werden.
Das geht ja vereinfacht so:
Code: Alles auswählen
TContactTitle = class(TBaseContactTitle)
constructor Create; override;
end;
TContactTitles = class(TBaseContactTitleList)
constructor Create; override;
end;
aber wie bekomme ich in die abgeleitete Listklasse die abgeleiteten Items (nicht TBaseContactTitle sondern TContactTitle) ?
Gruß Klaus