Ich möchte einer Prozedur eine Klasse und eine spezialisierte Liste übergeben; die Prozedur erstellt Objekte der Klasse und fügt sie in der Liste ein.
Mein Versuch sieht in etwa so aus:
Code: Alles auswählen
program t;
procedure x(cls: TClass; list: TFPSList);
var
o: TObject;
begin
o := cls.Create;
list.Add(o);
end;
type
tl = specialize TFPGObjectList<TPersistent>;
var
l: tl;
begin
l := tl.Create;
x(TPersistent, l);
end.
TFPGObjectList scheidet daher als Oberklasse aus; der nächste Vorfahr ist also TFPSList. Verwende ich diese wie im Beispiel Oben, wird in der Liste jedoch Datenmüll abgelegt; ich komme nicht mehr an die Objekte heran.