Einzelnen Beitrag anzeigen

Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#1

Funktion aufrufen, innherhalb nochmal aufrufen - Rest?

  Alt 3. Mär 2007, 22:37


Wiedermal ein komischer Titel, aber wie so oft fällts mir nicht besser ein

Ich habe eine Funktion. In dieser Funktion ist ungefähr in der Mitte unter einer Bedingung ein Aufruf genau dieser Funktion. Was passiert mit dem Rest der Funktion, der nach dem Aufruf kommt? Wird der 'Rest-Code' trotzdem noch ausgeführt oder springt man sozusagen mit dem Aufruf der Funktion, aus der Funktion raus (Neustart der Funktion)?

Um das Wirr-Warr zu verdeutlichen ein Code-Beispiel:
Delphi-Quellcode:
// etc

var bla,blubb : boolean; // global

// etc

function popohaue():integer;
begin

  if bla=blubb then begin
    popohaue();
  end;

  showmessage('wuppdi');
  blubb:=false;

end;


procedure Button1.Click(Sender: TObject);
begin
bla:=true;
blubb:=true;
popohaue();
Würde das Showmessage noch ausgeführt werden, auch wenn die Funktion schon erneut aufgerufen wurde?

Beim Testen kratzte TurboDelphi ab, von daher vermute ich, dass es so nicht funktioniert

Würde also bedeuten, dass die Funktion unendlich läuft, weil die Bedingung zutrifft und den 'Rest-Code' ignoriert. Stimmt diese Annahme oder gibt es etwas Anderes zu beachten, das ich übersehen habe?
mfg zecke
  Mit Zitat antworten Zitat