Call

From AutoIt Wiki

Jump to: navigation, search

Calls a user-defined function contained in a string parameter. Adapted from AutoIt docs.

Contents

Syntax

Call("function" [, param1 [, param2 [, param n]]])

Parameters

functionThe name of the user function to call.
paramArguments that will be passed to the function being invoked.

Return Value

Success: Returns the return value of the called function.
Failure: Sets @error to 1 if the function does not exist.

Example

; This calls a function accepting no arguments.
Call("Test1")

; This calls a function accepting one argument and passes it an argument.
Call("Test2", "Message from Call()!")

; This demonstrates how to use the special array argument.
Global $aArgs[4]
$aArgs[0] = "CallArgArray" ; This is required, otherwise, Call() will not recognize the array as containing arguments
$aArgs[1] = "This is a string"  ; Parameter one is a string
$aArgs[2] = 47  ; Parameter two is a number
Global $array[2]
$array[0] = "Array Element 0"
$array[1] = "Array Element 1"
$aArgs[3] = $array  ; Parameter three is an array

; We've built the special array, now call the function
Call("Test3", $aArgs)

Func Test1()
    MsgBox(4096, "", "Hello")
EndFunc

Func Test2($sMsg)
    MsgBox(4096, "", $sMsg)
EndFunc

Func Test3($sString, $nNumber, $aArray)
    MsgBox(4096, "", "The string is: " & @CRLF & $sString)
    MsgBox(4096, "", "The number is: "& @CRLF & $nNumber)
    For $i = 0 To UBound($aArray) - 1
        MsgBox(4096, "", "Array[" & $i & "] contains:" & @CRLF & $aArray[$i])
    Next
EndFunc

Remarks

The function cannot be a built-in AutoIt function or plug-in function. The function can pass arguments to functions, however, ByRef parameters are not supported; tehre is no way to retrieve the ByRef parameter. A special array can be passed in lieu of individual parameters. This array must have it's first element set to "CallArgArray" and elements 1 - n will be passed as separate arguments to the function. If using this special array, no other arguments can be passed to Call(). See example for demonstration.

Related Functions

AdlibEnable

Personal tools