Menü

Funktionen aufrufen (Pascal-Script)

Zurück | Ebene zurück  

Der Aufruf von Funktionen funktioniert natürlich fast genauso wie der von Prozeduren. Da die Funktion einen Wert zurückliefert, steht der Funktionsaufruf praktisch als Variable für diesen Wert, und genauso wird eine Funktion auch benutzt, wie eine Variable:

Beispiel_Funktion_1“, bekommt keine Werte übergeben, liefert ein Boolean zurück.

procedure ReportBeforePrint;
    var   
	B: Boolean;

    begin
	B:= Beispiel_Funktion_1;

{ oder ...}

	if (Beispiel_Funktion_1) then
	     ShowMessage('Beispiel Funktion 1 hat true zurückgeliefert')
	else ShowMessage('Beispiel Funktion 1 hat false zurückgeliefert');	    
 
{ oder ...}

	TextFeld.visible:=Beispiel_Funktion_1;

   end;

Man kann also den zurückgelieferten Wert direkt verwenden, einer Variablen zuweisen (kommt selten vor), in einer if-Abfrage benutzen oder damit die (visible-) Eigenschaft eines Objektes setzen.

Beispiel_Funktion_2“, bekommt einen Integer übergeben, liefert einen String zurück:

procedure ReportBeforePrint;
    var   
	S: String;
	I: Integer;

    begin
	I:= 8;

	S:=Beispiel_Funktion_2(I);

{ oder ...}

	ShowMessage( Beispiel_Funktion_2(4) );

{ oder ...}

	S:= 'Nachricht: ' + Beispiel_Funktion_2( (I + 89) );
    end;

Beispiel_Funktion_3“, bekommt einen Integer, ein Boolean und einen String übergeben, liefert einen String zurück:

procedure ReportBeforePrint;
    var   
	S1, S2: String;
	I: Integer;
	B: Boolean;

    begin
	I:= 10;
	B:= Beispiel_Funktion_1;
	S1:= Beispiel_Funktion_2(I);
	S2:= Beispiel_Funktion_3(I, B, S1);

{ oder ...}

	ShowMessage ( Beispiel_Funktion_3 (10, Beispiel_Funktion_1, Beispiel_Funktion_2 (I) ) );
    end;

Wie man hier sieht können Funktionsaufrufe auch verschachtelt werden, im Aufruf der Funktion Beispiel_Funktion_3 können durchaus Beispiel_Funktion_2 und Beispiel_Funktion_1 verwendet werden. Auch hier gilt: Nicht unbedingt übertreiben! Immer nur soweit verschachteln, dass man noch den Überblick hat und sich vorstellen kann, was der Code macht, den man grade produziert hat.