Es gibt mindestens 4 Varianten:
1.) man verwendet TObjectList und muss beim auslesen der Objekte casten
2.) man verwendet eine generische ObjektList (natürlich nur wenn man eine Delphi Version hat die das unterstützt)
3.) man leitet von TObjectList ab und überdeckt das Items[]-Property
4.) man erstellt eine Klasse die intern ein privates Objekt vom Typ TObjectList hat und präsentiert nach Aussen nur die Properties und Methoden die man für die Aufgabenstellung unbedingt braucht:
Delphi-Quellcode:
TSomeItems = class(TObject)
private
FList : TObjectList;
public
constructor Create;
destructor Destroy;override;
procedure Add(item:TSomeItem);
function AddNew:TSomeItem;
property Items[Index: integer]: TSomeItem read GetSomeItem; default;
property Count:Integer read GetCount;
end;
Das bedeutet natürlich die meiste Schreibarbeit und den geringsten Grad an Wiederverwendbarkeit;
im Gegenzug kann man die Klasse auf seine Anforderungen genau zuschneiden und hat die beste Kontrolle darüber was in die Liste eingefügt oder aus der Liste gelöscht werden kann.