Jetzt habe ich doch noch eine Lösung gefunden.
Delphi-Quellcode:
TEnumObjectList<T> = class(TInterfacedObject, IEnumerable<T>)
private
FList: TObjectList;
public
constructor Create(AList: TObjectList);
function GetEnumerator: IEnumerator;
function IEnumerable<T>.GetEnumerator = GetGenericEnumerator;
function GetGenericEnumerator: IEnumerator<T>; overload;
end;
Dabei wird mir zwar schlecht, aber wenns funktioniert. Und dafür habei ich heute den halben Vormittag verbraucht.