cshwjj 发表于 2008-9-11 09:40:40

如何将一个函数作为一个参数来传递?

现在想设计一个函数,当这个函数满足一定条件的时候执行另外一个函数,类似于下面的样子!,但是我发现,当我运行Test这个函数的时候发现无论如何它都执行Click这个函数,有没有什么方法让我运行Test(1,Click(721,215))的时候不执行Click这个函数而运行类似于Test(0,Click(721,215))的时候执行Click这个函数?
Test(1,Click(721,215))

Func Test($Role,$FName)
        If $Role = 1 Then
                Exit               
        EndIf       
        call ($FName)
EndFunc
       
Func Click($x,$y)
        WinActivate("×××","")
        mouseclick("Left",$x,$y)
EndFunc

l4ever 发表于 2008-9-11 14:10:28

最好的方法就是分开写.写成2个程序用CMDLINE调用.

即即 发表于 2008-9-17 20:07:09

Test(0, "Click(721,215)")

Func Test($Role, $FName)
        If $Role = 1 Then
                MsgBox(0, "", "现在是1的状态,正在执行第一个自定义函数")
        ElseIf $Role = 0 Then
                $xa = StringSplit($FName, "(")
                $xb = StringSplit($xa, ",")
                Call($xa, $xb, StringTrimRight($xb, 1))
        EndIf
EndFunc   ;==>Test

Func Click($x, $y)
        MsgBox(4096, "", "现在是带 " &$x & " 和 " & $y& " 参数执行第二个自定义函数")
EndFunc   ;==>Click

k1727 发表于 2009-6-8 23:24:13

函数作为参数传过去。已经是面向对象编程了。AU3可以么?:face (13):

maxkingmax 发表于 2009-6-9 12:00:29

Execute
--------------------------------------------------------------------------------

执行一个表达式(主要用于数学求值).


Execute ( 字符串 )




参数

字符串 包含一个表达式的字符串.



返回值

成功: 返回表达式的值.
失败: 返回 "" (空字符串) ,并且 @error 设置为非 0.



注意/说明

None.
页: [1]
查看完整版本: 如何将一个函数作为一个参数来传递?