(Not tested in Delphi)

[pascal]
Type
TItem = Class
<properties>
End;
var
Items : TList;

Procedure Create;
Var
I : TItem;
Begin
Items := TList.Create;
I := TItem.Create;
I.Init;
Items.Add(I);
End;

Function GetItem(Index : Integer) : TItem;
Begin
Result := TItem(Items[Index]);
End;

Player := GetItem(0);
[/pascal]