Übergib das ganze als var Parameter:
Delphi-Quellcode:
procedure Foo(var sl: TStringList);
begin
sl.Add('Test');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
sl: TStringList;
begin
sl := TStringList.Create;
Foo(sl);
ShowMessage(sl.Text);
sl.Free;
end;
Dann ist klar, wer den Speicher aufräumen muss.