Moin Hausmarke,
ein Objekt als Rückgabewert einer Funktion kann leicht problematisch sein, da es in der Funktion erzeugt werden muss, aber anschliessend schwer zu entscheiden ist, wann man es wieder freigeben darf bzw. muss. Ausserdem kann man diese Freigabe leicht vergessen.
So wie es aussieht dürfte es in Deinem Falle nicht schwierig sein erst die Objectlist zu erzeugen und anschliessend als Parameter zu übergeben, so dass die Funktion die Liste füllen kann.
Delphi-Quellcode:
ObjektlisteFuellen(const AListe : TObjectList);
begin
//...
end;
w := TObjectList.Create;
try
ObjektlisteFuellen(w);
// weiterverarbeiten
finally
w.Free;
end;