Prozeduren
Zuletzt geändert: 12.06.2023 05:58

Prozeduren (Pascal-Script) #

Eine Prozedur enthält eine Reihe von Anweisungen (beliebig viele), die bei Aufruf der Prozedur ausgeführt werden. Eine ganz einfache Prozedur wäre folgende:

procedure Beispiel_Prozedur_1;
  
    begin
	Variable_1:=Variable_1 + 30;
	ShowMessage('Variable 1 um 30 erhöht.');
    end;

Diese Prozedur würde eine existierende Variable „Variable_1“ um 30 erhöhen und dann die Meldung „Variable 1 um 30 erhöht.“ ausgeben. Eine Prozedur kann auch wiederum andere Prozeduren oder Funktionen aufrufen:

procedure Beispiel_Prozedur_2;
  
    begin
	Variable_1:=Variable_1 + 30;
	ShowMessage('Variable 1 um 30 erhöht.');

	Beispiel_Prozedur_1;  { Aufruf einer Prozedur }
	ShowMessage('Beispiel-Prozedur 1 wurde aufgerufen');

    end;

Hier wurde die Prozedur „Beispiel_Prozedur_2“ in der Prozedur „Beispiel_Prozedur_1“ aufgerufen. Auf diese Weise kann man beliebig viele Prozeduren und Funktionen ineinander verschachteln, man sollte aber aufpassen es nicht zu übertreiben und den Überblick zu verlieren!

Man kann eine Prozedur auch so gestalten, dass ihr beim Aufrufen ein Wert (oder mehrere) mitgegeben werden. Dieser Wert kann dann in der Prozedur benutzt und / oder verändert werden:

procedure Beispiel_Prozedur_3 (S: String);
    begin
	ShowMessage(S);
 	A:=S;
	S:=S + ' !!!';
	ShowMesage(S);
    end;

Diese Prozedur bekommt beim Aufrufen einen String (Text) mitgegeben und gibt diesen aus. Anschließend weist sie der existierenden Variablen A den Text von S zu und hängt schließlich ein Leerzeichen und drei Ausrufezeichen an S an. Es ist natürlich auch möglich, mehrere Werte beim Aufruf mitzugeben:

procedure Beispiel_Prozedur_4 (S: String; B: Integer);
    begin
	while B > 0 do
	    begin
		S:= S + '!';
		B:= B - 1;
	    end;
	ShowMessage(S);
    end;

Diese Prozedur hängt B-mal ein Ausrufezeichen an den String S und gibt diesen dann aus. Wie man schon sieht, kann man in Prozeduren (und auch in Funktionen) alle bekannten Prozeduren, Funktionen, Operationen und Zuweisungen aufrufen bzw. machen wie es beliebt.

Hier wurden sehr einfache, vielleicht auch sinnlose Beispiele von Prozeduren aufgelistet. Mehr Beispiele und praxisnahe Anwendungen finden Sie unter Beispiele.

Prozeduren aufrufen #

Eine Prozedur ruft man einfach durch ihren Namen auf, dabei darf man nicht vergessen die benötigten Werte zu übergeben. Verlangt eine Prozedur die Übergabe von Werten, so müssen diese alle in der richtigen Reihenfolge übergeben werden. Dies wird an den Beispiel-Prozeduren „Beispiel_Prozedur_1“ bis „Beispiel_Prozedur_4“ deutlich (die ich jeweils im Ereignis „ReportBeforePrint“ aufrufe).

„Beispiel 1“ und „Beispiel 2“, es werden keine Werte übergeben:

procedure ReportbeforePrint;
begin
	Beispiel_Prozedur_1;
	Beispiel_Prozedur_2;
end;

Das war schon alles. So wird an diesem Punkt zuerst der Code der Beispiel-Prozedur 1 ausgeführt, dann der der Beispiel-Prozedur 2.

„Beispiel 3“, verlangt die Übergabe eines Strings:

procedure ReportBeforePrint;
    var
 		S: String; 
begin
	S:= 'Test-String';
	Beispiel_Prozedur_3(S);
end;

Die zu übergebenden Werte werden in Klammern, durch Komma getrennt, hinter den Prozedur-Namen geschrieben.

„Beispiel 4“, verlangt die Übergabe eines Strings und eines Booleans:

procedure ReportBeforePrint;
    var
		S: String;
		B: Boolean;
begin
	S:= 'test-String';
	B:= true;
	Beispiel_Prozedur_4(S, B);
end;

Wichtig ist auch die Reihenfolge der Übergabe-Parameter, hätte man im obigem Beispiel versucht, die Prozedur mit

	Beispiel_Prozedur_4(B, S);	

aufzurufen, wäre das fehlgeschlagen. In der Reihenfolge wie die Parameter im Kopf der Prozedur aufgeführt sind müssen sie auch übergeben werden.