Einzelnen Beitrag anzeigen

DrUArn

Registriert seit: 20. Mär 2003
130 Beiträge
 
Delphi 10.3 Rio
 
#1

Darf man Felder und Property's überschreiben?

  Alt 27. Jul 2012, 13:33
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
  Mit Zitat antworten Zitat