Ruft eine benutzerdefinierte oder integrierte Funktion auf, deren Name in einem String übergeben wird.
Call ( "function" [, param_1 [, param_2 [, param_N]]] )
function | Der Name der Funktion, die aufgerufen werden soll, als Literalstring. |
param | Parameter, die übergeben werden, wenn die Funktion aufgerufen wird. Siehe Bemerkungen unten. |
Erfolg: | Gibt den Wert 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. |
Argumente können einzeln an Funktionen übergeben oder in ein Array platziert werden.
In diesem Array, das der einzige verwendete Parameter sein muss, sollte das Element [0] auf "CallArgArray" gesetzt sein, während die Elemente [1 - N] die separaten Argumente für die Funktion enthalten.
Siehe Beispiel für eine Demonstration.
Es ist zu beachten, dass entweder Call() oder die aufgerufene Funktion @error setzen kann.
Wenn Call() @error setzt, lautet der Wert 0xDEAD und @extended wird ebenfalls auf 0xBEEF gesetzt.
Siehe das Beispiel für eine Testdemonstration für eine Funktion, die nicht gefunden wurde.
#include <MsgBoxConstants.au3>
Example()
Func Example()
; 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.
Local $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)
Local $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($MB_SYSTEMMODAL, "", "Funktion existiert nicht.")
EndFunc ;==>Example
Func Test1()
MsgBox($MB_SYSTEMMODAL, "", "Hallo")
EndFunc ;==>Test1
Func Test2($sMsg)
MsgBox($MB_SYSTEMMODAL, "", $sMsg)
EndFunc ;==>Test2
Func Test3($sString, $nNumber, $aArray)
MsgBox($MB_SYSTEMMODAL, "", "Der String lautet: " & @CRLF & $sString)
MsgBox($MB_SYSTEMMODAL, "", "Die Zahl lautet: " & @CRLF & $nNumber)
For $i = 0 To UBound($aArray) - 1
MsgBox($MB_SYSTEMMODAL, "", "Array[" & $i & "] beinhaltet:" & @CRLF & $aArray[$i])
Next
EndFunc ;==>Test3