Hallo,
Wollte mich mal melden um Bescheid zu sagen, dass ichs geschafft habe. Zuerst habe ich statt des Interfaces eine abstrakte Klasse genommen. Problem war dann aber immernoch:
Delphi-Quellcode:
function TIDObjectList<T>.GetItem(Index: Integer): T;
begin
Result := inherited Items[Index];
end;
Hier wurde dann im konkreten Fall einem TTest ein TIDObject (entspricht IIDObject) zugewiesen. Was natürlich nicht geht und der blöde (= schlaue) Compiler leider gemerkt hat. Casten a la:
Result := T(inherited Items[Index]);
funktioniert mit diesen generischen Dingern leider nicht. Dann habe ich.. sagen wir.. manuell gecastet
Delphi-Quellcode:
function TIDObjectList<T>.GetItem(Index: Integer): T;
var tmp: Pointer;
begin
tmp := inherited Items[Index];
Move(tmp,Result,SizeOf(Pointer));
end;
Und jetzt funktioniert es
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."