Einzelnen Beitrag anzeigen

Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.664 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Überschreiben von Feldern in OOP

  Alt 8. Mai 2007, 08:55
1. würde ich mir überlegen, anstatt TList vielleicht TObjectList zu verwenden, dann hört die Pointerschieberei auf und die Typen sind etwas sicherer.

2. würde ich TItemList nicht mit TProduktList erweitern, sondern TProduktList von TTitemList ableiten. So sparst Du Dir die Eigenschaft Liste und kannst direkt darauf zugreifen.

3. TProdukt von TItem ableiten, so hat TProduct eine uid und kann bei der Suche nach selbigem benutzt werden.

Delphi-Quellcode:
function TItemListe.getPointerByUid(uid:Integer):TItem;
  var i:INteger;
  begin
  Result := nil;
  for i:=0 to Count-1 do
  if Items[i].uid=uid then
  begin
    Result:=Items[i];
    break;
  end;
  if Result = nil then
    raise ERangeError.Create('Kein ItemListeneintrag gefunden! '+#13+'UID: '+IntToStr(uid));
end;

rocedure TProdListe.add(bez:String; preis:Double; (...));
var i:Integer
begin
  Add(TProdukt.Create(bez, preis, (...)));
end;
Sven Harazim
--
  Mit Zitat antworten Zitat