Functions > Misc >


Call

Appelle une fonction utilisateur ou interne passée dans le premier paramètre.

Call ( "function" [, param_1 [, param_2 [, param_N]]] )

Paramètres

function Le nom de la fonction ou la fonction à appeler.
param Les arguments qui seront passés à la fonction invoquée.

Valeur de retour

Succès: Retourne la valeur de retour de la fonction appelée. De même @error et @extended peuvent contenir des valeurs si la fonction appelée les renseigne.
Échec: Retourne @error = 0xDEAD et @extended = 0xBEEF si la fonction n'existe pas ou si le nombre d'arguments n'est pas correct.

Remarque

La fonction peut passer des arguments, cependant, les paramètres ByRef ne sont pas supportés; il n'y a aucune façon de récupérer un paramètre ByRef.

Un tableau spécial peut être passé à la place des paramètres individuels. Ce tableau doit avoir son premier élément égal à "CallArgArray" et les éléments de 1 à n contiendront les paramètres de la fonction passés séparément. Si vous utilisez ce tableau spécial, aucun autre argument ne pourra être passé à Call(). Consultez l'exemple pour une démonstration.
Call() peut définir lui-même le flag @error, tout comme la fonction appelée. Si Call() définit le flag @error, la valeur sera 0xDEAD et @extended sera défini à 0xBEEF. Consultez l'exemple pour un test de fonction qui n'est pas trouvée.

En relation

Execute

Exemple

#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Appelle une fonction acceptant aucun argument.
    Call("Test1")

    ; Appelle une fonction acceptant un argument et le passe en argument.
    Call("Test2", "Message from Call()!")

    ; Montre comment utiliser le tableau spécial d'arguments.
    Local $aArgs[4]
    $aArgs[0] = "CallArgArray" ; Cela est nécessaire, sinon, Call() ne reconnaîtra pas le tableau comme contenant des arguments
    $aArgs[1] = "This is a string" ; Le premier paramètre est une chaîne
    $aArgs[2] = 47 ; Le paramètre deux est un nombre
    Local $aArray[2]
    $aArray[0] = "Array Element 0"
    $aArray[1] = "Array Element 1"
    $aArgs[3] = $aArray ; Le paramètre trois est un tableau

    ; Nous avons construit le tableau spécial, maintenant, appelons la fonction
    Call("Test3", $aArgs)

    ; Test de l'appel d'une fonction qui n'existe pas. Cela montre la bonne façon de tester ensemble 
    ; les deux flags @error et @extended qui  contiennent les erreurs documentées.
    Local Const $sFunction = "DoesNotExist"
    Call($sFunction)
    If @error = 0xDEAD And @extended = 0xBEEF Then MsgBox($MB_SYSTEMMODAL, "", "La fonction n'existe pas.")
EndFunc   ;==>Example

Func Test1()
    MsgBox($MB_SYSTEMMODAL, "", "Hello")
EndFunc   ;==>Test1

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

Func Test3($sString, $nNumber, $aArray)
    MsgBox($MB_SYSTEMMODAL, "", "La chaîne est: " & @CRLF & $sString)
    MsgBox($MB_SYSTEMMODAL, "", "Le nombre est: " & @CRLF & $nNumber)
    For $i = 0 To UBound($aArray) - 1
        MsgBox($MB_SYSTEMMODAL, "", "Array[" & $i & "] contient:" & @CRLF & $aArray[$i])
    Next
EndFunc   ;==>Test3