Ich würde mir die Arbeit ersparen, dass ohne Generics nochmal zu implementieren.
So viel Arbeit ist es zumindest rein für die generischen Listen doch gar nicht. Ein Beispiel wie ich es eingesetzt habe:
Delphi-Quellcode:
{$IFNDEF COMPILER_14_UP}
TTypedObjectListItem = TEventListenerClient;
{$include 'TypedObjectListTemplate.inc'}
TEventListenerClientList = TTypedObjectListTemplate;
{$ELSE}
TEventListenerClientList = TObjectList<TEventListenerClient>;
{$ENDIF}
Sprich für alte Delphiversionen habe ich einfach die Klasse anders deklariert. Und zusätzliche Funktionen kann man ja umsetzen indem man direkt eine eigene Klasse ableitet.