Re: Verwalten von Objekten in einer Container-Klasse
Zitat:
Zitat:
|
Re: Verwalten von Objekten in einer Container-Klasse
Zitat:
Wobei man hier weiter gehen könnte und eine eigene Liste implementieren kann, die man dann anstatt TList verwendet. |
Re: Verwalten von Objekten in einer Container-Klasse
:duck: ok, ich halt mich raus
|
Re: Verwalten von Objekten in einer Container-Klasse
Zitat:
|
Re: Verwalten von Objekten in einer Container-Klasse
Zitat:
|
Re: Verwalten von Objekten in einer Container-Klasse
Zitat:
Letztlich sieht er es ja genauso, wie seine Antwort an Thorben_K ein Posting später zeigt. Sowohl seinen als auch meinen Ausführungen ist diesbezüglich nichts hinzuzufügen. Zitat:
|
Re: Verwalten von Objekten in einer Container-Klasse
Zitat:
TList sein. Sieht eigentlich ganz einfach aus.
Delphi-Quellcode:
unit Unit2;
interface uses classes; Type TMyListItem = class(TObject) private FName: String; procedure SetName(const Value: String); public property Name : String read FName write SetName; end; TMyListItems = class(TList) protected function Get(Index: Integer): TMyListItem; procedure Put(Index: Integer; const Value: TMyListItem); public function Add : TMyListItem; procedure Clear; override; function Extract(Item: TMyListItem): TMyListItem; function First: TMyListItem; function IndexOf(Item: TMyListItem): Integer; procedure Insert(Index: Integer; Item: TMyListItem); function Last: TMyListItem; property Items[Index: Integer]: TMyListItem read Get write Put; default; end; implementation { TMyListItem } procedure TMyListItem.SetName(const Value: String); begin FName:=Value; end; { TMyListItems } function TMyListItems.Add: TMyListItem; begin Result:=TMyListItem.Create; inherited Add(Result); end; procedure TMyListItems.Clear; var iCnt : Integer; begin For iCnt := 0 to Count - 1 do TObject(Items[iCnt]).Free; inherited Clear; end; function TMyListItems.Extract(Item: TMyListItem): TMyListItem; begin Result:=TMyListItem(inherited Extract(Item)); end; function TMyListItems.First: TMyListItem; begin Result:=TMyListItem(inherited First); end; function TMyListItems.Get(Index: Integer): TMyListItem; begin Result:=TMyListItem(inherited Get(Index)); end; function TMyListItems.IndexOf(Item: TMyListItem): Integer; begin Result:=inherited IndexOf(Item); end; procedure TMyListItems.Insert(Index: Integer; Item: TMyListItem); begin inherited Insert(Index,Item); end; function TMyListItems.Last: TMyListItem; begin Result:=TMyListItem(inherited Last); end; procedure TMyListItems.Put(Index: Integer; const Value: TMyListItem); begin inherited Put(Index,Value); end; end. |
Re: Verwalten von Objekten in einer Container-Klasse
Zitat:
Wäre deine Liste wirklich streng typisiert könnte ich das nicht machen:
Delphi-Quellcode:
var
list : TMyListItems; item : TMyListItem; evilValue : PInteger; begin ... new(evilValue); list.Add(evilValue); item := list[0]; WriteLn(item.Name); //Hmpf? Was steht denn da drin? |
Re: Verwalten von Objekten in einer Container-Klasse
Ich habe jetzt mal die Vorschläge eingearbeitet. Demo und PDF wurden auch aktualisiert.
|
Re: Verwalten von Objekten in einer Container-Klasse
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz