Wozu? Meistens reicht es schon die property Items zu überschreiben:
Delphi-Quellcode:
TSomeItems = class(TObjectList)
private
function GetSomeItem(Index: integer): TSomeItem;
public
property Items[Index: integer]: TSomeItem read GetSomeItem; default;
end;
{ TSomeItems }
function TSomeItems.GetSomeItem(Index: integer): TSomeItem;
begin
Result := TSomeItem(inherited Items[Index]);
end;
{ TSomeApp }
procedure TSomeApp.DoSomething;
begin
Index := FSomeItems.Add(TSomeItem.Create);
FSomeItems[Index].DT := Now;
end;