Aber um ein spezifisches Create kommst du nicht herum, sonst greift das override ja nicht.
Der Klassentyp der Quellklasse ist doch bekannt. Also geht doch:
Delphi-Quellcode:
type
TGraphicObjectClass = class of TGraphicObject;
procedure TGraphicObjectList.AddList(Value: TGraphicObjectList);
var
I: integer;
NewItem: TGraphicObject;
begin
for I := 0 to Value.Count - 1 do
begin
NewItem := TGraphicObjectClass(Value[I].ClassType).Create;
Add(NewItem);
NewItem.Assign(Value[I]);
end;
end;