Konstantenparameter Ausgabeparameter Array-Parameter Default-Parameter

Object Pascal im Detail - Prozeduren und Funktionen www.delphi-treff.de 83 procedure MachWas2var Wert1, Wert2: Integer; begin Wert1 := 2 ; Wert2 := 3 ; end; procedure Aufrufen; var Zahl1, Zahl2: Integer; begin MachWas2Zahl1, Zahl2; ... end; Dass die Variablen Zahl1 und Zahl2 vor der Übergabe an MachWas2 nicht initialisiert wurden, macht nichts, da sie dort sowieso nicht ausgelesen werden. In MachWas2 werden Wert1 und Wert2 Werte zugewiesen - und da es sich dabei um Referenzparameter handelt, automatisch auch Zahl1 und Zahl2. Wenn MachWas2 abgearbeitet wurde, enthält Zahl1 also den Wert 2 und Zahl2 den Wert 3.

4.6.5.2. Konstantenparameter

Wird ein übergebener Wert in der FunktionProzedur nicht verändert und auch nicht als var-Parameter zum Aufruf einer weiteren Routine verwendet, kann man ihn als Konstantenparameter const deklarieren: procedure MachWasconst Zahl: Integer; Das ermöglicht dem Compiler eine bessere Optimierung, außerdem wird nun nicht mehr zugelassen, dass der Wert innerhalb der Prozedur verändert wird.

4.6.5.3. Ausgabeparameter

Ausgabeparameter werden mit dem Schlüsselwort out deklariert. Wie der Name bereits sagt, können solche Parameter nur zur Zuweisung eines Ausgabewerts verwendet werden. Eine Übergabe von Werten an eine Routine ist damit nicht möglich. Ansonsten entspricht der Ausgabeparameter einem Variablenparameter.

4.6.5.4. Array-Parameter

Es ist natürlich auch möglich, Arrays als Parameter einer Routine zu verwenden. Jedoch nicht auf die Art, die man intuitiv wählen würde: procedure MachWasAnderesFeld: array [ 1 . .20 ] of Integer; falsch Stattdessen muss zunächst ein eigener Typ definiert werden. Dieser kann dann in Prozedur- oder Funktionsköpfen verwendet werden: Object Pascal im Detail - Prozeduren und Funktionen www.delphi-treff.de 84 type TMeinFeld = array [ 1 . .20 ] of Integer; procedure MachWasAnderesFeld: TMeinFeld;

4.6.5.5. Default-Parameter

In Delphi können Parameter optional gemacht werden, so dass beim Aufruf auf sie verzichtet werden kann. Dafür müssen zwei Bedingungen erfüllt sein:  Der optionale Parameter benötigt einen Default-Wert, der dann verwendet wird, wenn der Parameter beim Aufruf nicht angegeben wird.  Die optionalen Parameter müssen am Ende der Parameterliste stehen. Das Weglassen beim Aufruf ist nur von hinten her möglich. Beispiel: function MyTesta: Integer; b: Integer = 42 ; In diesem Beispiel muss der zweite Parameter b nicht übergeben werden. Dann wird der Wert 42 verwendet. Es sind also folgende Aufrufe möglich: MyTest 100 ; a = 100, b = 42 MyTest 100 , 100 ; a = 100, b = 100

4.6.6. Prozeduren und Funktionen überladen