Solange TObjectList.Create(true) aufgerufen wurde, werden bei Free auch die Items freigegeben.
Noch eine Anmerkung zu
Delphi-Quellcode:
procedure TCarPos.AssignTo(var Dest: TCarPos);
begin
Dest.FZeitpunkt := FZeitpunkt;
Dest.FCarID := FCarID;
end;
In diesem Fall ist die Verwendung von Dest.FZeitpunkt und Dest.FCarID kein Problem, da die Set-Methoden der Properties Zeitpunkt und CarID auch nix anderes machen. Sollte allerdings in den Set-Methoden weiterer Code stehen, der mit dem Wert vorher noch etwas macht, dann musst Du folgendes aufrufen:
Delphi-Quellcode:
procedure TCarPos.AssignTo(var Dest: TCarPos);
begin
Dest.Zeitpunkt := Zeitpunkt;
Dest.CarID := CarID;
end;
Bei
Delphi-Quellcode:
procedure TCarPosCollection.AssignTo(var Dest: TCarPosCollection);
var
i:integer;
begin
Dest.FZustand := FZustand;
{kopiere alle items vom typ TCarPos}
for i := 0 to count-1 do
Dest.add(items[i].clone);
end;
wäre ggf noch ein Dest.Clear zu Beginn sinnvoll.