Na klar!
Mit einer Garbage Collection kann einem auf Dauer sogar das Denken abhanden kommen.
Assign übernimmt nicht das neue Object, nachdem es die alte Instanz "aufgeräumt" hat -> es macht sich nur eine Kopie.
Delphi-Quellcode:
var
SL :TStrings;
begin
// auch wenn es blöd aussieht...
// Da du IMHO nicht weißt ab wann die SL erzeugt wird, sollte auch foo() in den Try-Except-Block
try
SL := foo();
ListBox.Items.Assign(SL);
finally
if Assigned(SL)
then
Free(SL);
// FreeAndNill halte ich für unnötig, da man mit SL wohl nix mehr machen wird
end;
end;