Generisch gar nicht. Du must für jede deiner Klassen (auch bei TCollectionItems) eine neue Version der Assign/AssignTo-Methode schreiben (Dort kannst Du ja auch auf die private-Member zugreifen) und dann von unterer Ebene beginnen diese Assign-Methode so zu füllen das alles kopiert wird.
für die Liste mußt Du eine Schleife der folgenden Art implementieren:
Delphi-Quellcode:
procedure TMyList.Assign(Source: TMyList);
var
i: Integer;
CloneItem: TMyCollectionItem;
begin
for i := 0 to Length-1
begin
CloneItem := TMyCollectionItem.Create;
CloneItem.Assign(Source.Items[i]);
Add(CloneItem);
end;
end;
Windows Vista - Eine neue Erfahrung in Fehlern.