Funktionsreferenz

Call

Ruft eine benutzerdefinierte Funktion auf, deren Name in einem String übergeben wird.

Call ( "function" [, param1 [, param2 [, paramN ]]] )

 

Parameter

function Der Name der benutzerdefinierten Funktion, die aufgerufen werden soll.
param Parameter, die übergeben werden, wenn die Funktion aufgerufen wird.

 

Rückgabewert

Erfolg: Gibt den Rückgabewert der aufgerufenen Funktion zurück. @error und @extended können Werte enthalten, falls die aufgerufene Funktion diese festgelegt hat.
Fehler: setzt @Error auf 0xDEAD und @extended auf 0xBEEF, wenn die Funktion nicht existiert oder die Anzahl der Parameter falsch ist.

 

Bemerkungen

In function kann keine AutoIt-eigene Funktion oder PlugIn-Funktion enthalten sein. Die Funktion kann Argumente an Funktionen weitergeben, jedoch werden ByRef Parameter nicht unterstützt. Es gibt keine Möglichkeit um ByRef Parameter aufzurufen. Ein spezielles Array kann anstelle von individuellen Parametern weitergegeben werden.

Das erste Element dieses Arrays muss den Wert "CallArgArray" haben und die Elemente 1 bis n werden als separate Argumente an die Funktion übergeben. Wenn dieses besondere Array genutzt wird, können keine anderen Argumente an Call() übergeben werden. Siehe Beispiel zur Demonstration.
Call() kann einen @error festlegen und auch die aufgerufene Funktion. Falls Call() für @error einen Wert setzt, ist dieser 0xDEAD und ebenfalls der Wert von @extended auf 0xBEEF gesetzt. Siehe das Beispiel für eine Demonstration, wie man testet, ob eine Funktion nicht gefunden wurde.

 

Verwandte Funktionen

Execute

 

Beispiel


; Dies ruft eine Funktion auf, die keine Argumente akzeptiert.
Call("Test1")

; Dies ruft eine Funktion auf, die ein Argument akzeptiert, und übergibt ein Argument an diese.
Call("Test2", "Nachricht von Call()!")

; Dies demonstriert die Benutzung des 'special array' Arguments.
Global $aArgs[4]
$aArgs[0] = "CallArgArray" ; Diese Zuweisung ist erforderlich, anderenfalls wird Call() das Array nicht als Argumentinhalt erkennen
$aArgs[1] = "Dies ist ein String" ; Parameter Eins ist ein String
$aArgs[2] = 47 ; Parameter zwei ist eine Ganzzahl (Integer)
Global $array[2]
$array[0] = "Array Element 0"
$array[1] = "Array Element 1"
$aArgs[3] = $array ; Parameter drei ist ein Array

; Wir haben das 'special array' erstellt, rufen wir nun die Funktion auf
Call("Test3", $aArgs)

; Testaufruf einer Funktion welche nicht existiert.
; Überprüfung von @error und @extended auf die dokumentierten Fehlerwerte.

Local Const $sFunction = "Existiert Nicht"
Call($sFunction)
If @error = 0xDEAD And @extended = 0xBEEF Then MsgBox(4096, "", "Funktion existiert nicht.")


Func Test1()
    MsgBox(4096, "", "Hallo")
EndFunc   ;==>Test1

Func Test2($sMsg)
    MsgBox(4096, "", $sMsg)
EndFunc   ;==>Test2

Func Test3($sString, $nNumber, $aArray)
    MsgBox(4096, "", "Der String lautet: " & @CRLF & $sString)
    MsgBox(4096, "", "Die Zahl lautet: " & @CRLF & $nNumber)
    For $i = 0 To UBound($aArray) - 1
        MsgBox(4096, "", "Array[" & $i & "] beinhaltet:" & @CRLF & $aArray[$i])
    Next
EndFunc   ;==>Test3