TObjectList bietet einen Mechanismus zum Verwalten seiner Items. Ruft man TObjectList.Create(true) auf, gehören die Items dieser Objectlist und sie werden bei ObjectList.clear bzw ObjectList.Free von dieser wieder freigegeben.
Ruft man TObjectList.Create(false) auf, muss man sich selbst um die Freigaben der Items kümmern.
Um eine Kopie eines Items zu bekommen, musst Du dieses Object TCarPos noch z.b. um die funktionen AssignTo und Clone erweitern:
Delphi-Quellcode:
TCarPos
public
procedure AssignTo(_Dest : TCarPos);
function Clone : TCarPos;
end;
procedure TCarPos.AssignTo(_Dest : TCarPos);
begin
_Dest.Zeitpunkt := Zeitpunkt;
...
end;
function TCarPos.Clone : TCarPos;
begin
Result := TCarPos.Create;
AssignTo(Result);
end;
Dann machst Du einfach
Delphi-Quellcode:
for i := 0 to master.count-1 do
slave.add(master[i].clone)
schon hast Du eine Kopie, die Du mit slave.clear wieder löschst.
idealer Weise erweiterst Du Deine Objektlist auch um AssignTo und Clone um sich die Schleife zu sparen