Hallo
so geht das nicht.
Das Problem ist, das Result der Funktion eine TStringlist ist, die nie erstellt wird. Wenn du sie erstellst (result:=Tstringlist.create) schaffst du dir ein Speicherloch, da du diese Stringlist schwer wieder freigeben kannst.
Um dieses Problem zu umgehen, nimm statt der Funktion eine Procedure und arbeite mit der Stringlist als Var Paramter
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure test(source :string;VAR SL: TstringList); var List1: TStringList; begin List1:=TStringList.Create; try List1.LoadFromFile(source); . . . SL.Assign(List1);
finally List1.Free;
end; end;
sliste:=Tstringlist.Create; test(source,SLliste); |
obwohl du das in deinem Beispiel so nicht brauchst. (geht ja auch gleich sl.Loadfromfile...)
Mfg Frank