IMO ist die erste Lösung (TStrings als Parameter) wann immer möglich vorzuziehen.
[edit] Eine Freigabe des Rückgabewertes könnte so aussehen:
Delphi-Quellcode:
var l: TStrings;
begin
l := Funktion;
try
MachWasMitL;
finally
l.Free;
end;
end;
[/edit]
Das Interessante ist doch jetzt, was hinter "Funktion" steckt, oder nicht? Denn
TStrings muss ja analog wie
TStringList erstellt und auch wieder freigegeben werden.