Zitat von
Cyberbob:
Die Frage versteh ich jetzt nicht. Result ist immer der Rückgabewert einer Funktion. Wobei du ihn in Delphi sogar mehrmals ändernkannst und de Funktion erst verlassen wird, wenn du es sagst (Anderst als in C/C++).
Der Thread-Ersteller möchte einen Wert zurückgeben, ohne "Return" nutzen zu müssen, da eine seiner Variablen so heißt. Mehr Möglichkeiten als die 2 genannten gibt es nunmal nicht.
Zitat von
Cyberbob:
Wenn er eine Variable mit dem gleichen Namen wie der einer Funktion verwendet, geht der Compiler davon aus, dass die Funktion gemeint ist und ruft sie rekursiv wieder auf. Solange bis ein Stack-Überlauf auftritt.
Nein, du rufst die Funktion nicht auf. Anstelle von "Result" kann man auch den Funktionsnamen nutzen, was sogar in Pascal die einzige Möglichkeit war, einen Wert zurückzugeben. Dies ist vermutlich aus Kompatibilitätsgründen in Delphi weiterhin möglich, meiner Meinung nach jedoch nicht unbedingt zu empfehlen.
Edit:
Zur Verdeutlichung ein Beispiel. Beides funktioniert (der Sinn der Funktion sei mal dahingestellt):
Delphi-Quellcode:
function Sum(a, b: Integer): Integer;
begin
Result := a + b;
end;
function Sum(a, b: Integer): Integer;
begin
Sum := a + b;
end;