Hab da mal eine ganz dümmliche Frage:
Ich hatte eine etwas kompliziertere Funktion mit bedingtem Selbstaufruf, die nicht funktionierte. In der Folge habe ich diese Funktion auf den Selbstaufruf reduziert und gemerkt, dass sie nur einmal aufgerufen wird. Der folgende Code zeigt bei mir genau eine Meldung an:
Code: Alles auswählen
function GetSomething: string;
begin
ShowMessage('Aufruf');
Result := GetSomething;
end;
Auch wenn ich die Zeile als Haltepunkt markiere, wird sie nur einmal aufgerufen. Ich hoffe, dass ich nicht gerade einen kollossal peinlichen Denkfehler begehe.
Kleiner Funfact: Deklare ich die Funktion als Prozedur und schreibe statt "Result :=" nur "GetSomething", ruft sie sich selbst auf. Sonst nicht.