Wo soll das Funktionsergebnis (also die Instanz) denn herkommen, wenn sie nicht innerhalb der Funktion erzeugt wird? Was spricht denn dagegen, beide Instanzen in der aufrufenden Routine zu erzeugen und als Konstanten-Parameter zu übergeben?
Es spricht nichts dagegen. Es geht mir ums Verständnis. Und da frage ich mich, wie das Konstrukt aussehen müsste, wenn man die Liste als function zurück gibt.
Doch ein kleines Problem habe ich doch. Wie muss das dann aussehen?
Delphi-Quellcode:
procedure TuAlles(const SourList, DestList:TTestList);
begin
TuWas1(SourceList, DestList);
// Wie gehe ich vor, dass mit dem nächsten Aufruf die vorige DestList als SourceList übergeben wird
TuWas2(SourceList, DestList);
end;
// Das hier funktioniert nicht mehr, da ja als const hereingegeben und damit die Zuweisung DestList := lTempList; fehl schlägt
procedure TuAlles(const SourList, DestList:TTestList);
var
lTempList:TTestList;
begin
PrepareDestList(SourceList, DestList);
lTempList:=TTestList.Create;
PrepareDestList(SourceList, lTempList);
if TuWas1(DestList, lTempList)then
begin
DestList.Free; // Jetzt muss ich die ja freigeben um danach meine neue Ergebnisse dran zu hängen
DestList := lTempList;
lTempList:= nil;
end;
lTempList:=TTestList.Create;
PrepareDestList(SourceList, lTempList);
if TuWas2(DestList, lTempList)then
begin
DestList.Free;
DestList := lTempList;
lTempList:= nil;
end;
end;