Es geht leider nicht, daß man den "Typen" (falls Delphi ihn schon als Typen ansieht) auf das Generische Objekt erreichen/abfragen kann.
if test is TObjectList<T: class> then
ShowMessage('compiliert nichtmal!');
TObjectList<TObjekt> ist eine Ableitung von TObjectList<>
und TObjectList<TButton> ist auch eine Ableitung.
Es sind also Geschwister und keine Nachfahren, darum kann man diese Beiden auch nicht vergleichen.
Siehe:
Delphi-Quellcode:
type
TMyObjectA = Class(TObject)
End;
TMyObjectB = Class(TMyObjectA)
End;
TMyObjectC = Class(TObject)
End;
var
X: TMyObjectC;
if X is TObjectA then
ShowMessage('compiliert nichtmal!');
Zitat:
[DCC Fehler] Project3.dpr(20): E2010 Inkompatible Typen: 'TMyObjectA' und 'TMyObjectC'
Hier mal die Abstammung von
Code:
TObjectList<TButton> :
TObjectList<StdCtrls.TButton> TList<StdCtrls.TButton> TEnumerable<StdCtrls.TButton> TObject
TObjectList<TObject> :
TObjectList<System.TObject> TList<System.TObject> TEnumerable<System.TObject> TObject