Nein, da in Delphi eine strikte Typprüfung vorherscht, mußt du den Typen, bei Verwendung, auch vollständig deklarieren.
Task<TAbc>
und
Task<TXyz>
sind zwei vollkommen unterschiedliche Typen, welche auch nicht miteinander kompatibel sind.
Was du machen kannst, sind generische Funktionen.
Delphi-Quellcode:
type
TMyList = class(TList) // oder TMyList<X> = class(TList<X>)
function SetValue<T>(const Value: T);
procedure GetValue<T>: T;
end;
Ob sowas auch geht, weiß ich noch nicht
property Value<T>: T read GetValue<T> write SetValue<T>;
(vergessen zu testen).