Hi,
ein Thread zieht den nächsten nach sich:
Das Problem - siehe meine letzte Diskussion:
Delphi-Quellcode:
type
tmyobj1=class(tobject)
A:integer;
end;
tmyobj2=class(tmyobj1)
B:string;
end;
TMyList1withtmyobj1 = class(TobjectList)
procedure verarbeiteA;
end;
TMyList2withmyobj2 = class(TMyList1withtmyobj1)
procedure verarbeiteAundB;
end;
tmyrich1=class(trichedit)
private
FMylist:TMyList1withtmyobj1
public
property mylist: :TMyList1withtmyobj1 read FMylist write FMylist;
constructor Create(aOwner:tcomponent); override;//mylist erzeugt
end;
type tmyrich2=class(tmyrich1)
private
FMylist:TMyList2withtmyobj2;
public
property mylist: :TMyList2withtmyobj2 read FMylist write FMylist;
constructor Create(aOwner:tcomponent); override;//mylist löschen und erzeugen
end;
constructor tmyrich1.Create;
begin
inherited;
FMylist:=TMyList1withtmyobj1.create;
end;
constructor tmyrich2.Create;
begin
inherited;
inherited Mylist.free;
FMylist:=TMyList2withtmyobj2.create;
end;
Zu wem gehören meine zweimal definierten Felder fmylist?
Schreibe ich constructor tmyrich2.Create nicht, ist in tmyrich2, da .create
von tmyrich1 genutzt wird, fmylist= nil.
Nutze ich constructor tmyrich2.Create und erzeuge die Liste nochmal, greifen auch Routinen aus Tmyrich1 ordnubngsgemäß auf Feld fmylist respektive property mylist zu.
Darf man so arbeiten?
Gruß Uwe