Das stimmt so nicht. Das Objekt (genauer: die Instanz) selbst wird ohne Angabe von const, var oder out als Call by Value übergeben. Wenn man ein Objekt als Konstantenparameter übergibt, kann man ihm keine andere Instanz zuweisen, aber seine Eigenschaften ändern. Ich würde aber in Routinen ohne triftigen Grund keine Instanzen erzeugen, da man sonst sehr schnell durcheinanderkommt und sich entweder Speicherlecks oder wilde Zeiger fabriziert. Stattdessen bevorzuge ich persönlich folgende Vorgehensweise:
Delphi-Quellcode:
procedure TuWas(const Src, Dest: TSomeList);
var
i: integer;
begin
Assert(Assigned(Src), 'Keine Quellliste übergeben');
Assert(Assigned(Dest), 'Keine Zielliste übergeben');
Dest.Clear;
for i := 0 to Src.Count - 1 do
begin
// Nur als Beispiel
Dest.Add(Src[i]);
end;
end;
[edit] Mist, zu langsam [/edit]