Ich habe das mit Include-Dateien gelöst. Damit konnte man auch z.B. mit Delphi 5 quasi-generische Listen erzeugen und per IFDEF ließen sich diese ab Delphi 2009 1:1 genauso nutzen.
So ungefähr:
Delphi-Quellcode:
uses
Contnrs;
type
TMyListEntry = class
private
FData: Integer;
public
constructor Create(const AData: Integer);
property Data: Integer read FData write FData;
end;
TTypedListItem = TMyListEntry;
{$include 'TypedList.inc'}
TMyList = class(TTypedList)
end;
implementation
{$define Implementation}
{$include 'TypedList.inc'}
end.
Nutzung:
Delphi-Quellcode:
var
List: TMyList;
NewItem: TIntegerValue;
begin
List := TMyList.Create();
try
List.Add(TMyList.Create(42));
for i := 0 to MyList.Count - 1 do
ShowMessage(IntToStr(MyList[i].Data));
finally
List.Free();
end;