... Und da man das Anlegen und freigeben von Objekten auf der gleichen Ebene handeln sollte zum besseren Verständnis und Pflege des Quellcodes, würde ich das ganze so umstellen:
Delphi-Quellcode:
procedure x;
var
S: TStrings;
begin
S := TStringList.Create;
try
DeineFunktion(S);
finally
S.Free;
end;
end;
Procedure DeineFunktion(Const AList: TStrings);
Begin
AList.Add('Whatever');
AList.Add('you');
AList.Add('want');
AList.Add('him');
AList.Add('Todo');
AList.Add('...');
End;
Es ist eine echt widerliche Abart von manchen Programmierern sowas zu veranstalten und in einer Procedure eine Instanz anzulegen und dann zurück zu geben. Ich habe früher so einen Müll verzapft (Siehe TXMLAttributes in meiner XMLLib), aber heute bin ich um Erfahrungen reicher und würde solche schwachsinnigen Konstruktionen um jeden Preis vermeiden.