Meine Erfahrung zeigt: Wenn man mit Generics anfängt, muss man das gnadenlos durchziehen, d.h. entweder mit Metaklassen arbeiten oder mit Generics. Die Programmierparadigmen beider Systeme widersprechen sich: Bei Generics will ich vorher wissen, mit wem ich es zu tun habe, bei Metaklassen nicht.
Du könntest es über ein Interface versuchen: In C# geht sowas:
Code:
private IList CreateGenericList(Type listItemType)
{
Type listType = typeof (List<>);
Type combinedType = listType.MakeGenericType(listItemType);
return (IList) Activator.CreateInstance(combinedType);
}
Vielleicht (vermutlich) kann man das auch in Delphi nachbilden.