ycy 发表于 2012-12-30 14:12:04

依次调用自定义函数并及时显示结果?

请问怎么依次调用自定义函数
是这样的
For $Mun = 8 To 1 Step -1
        Tip()
        Wallpaper()
        finish()
        Sleep(1000)
        ToolTip(@CR & $tip & @CR, @DesktopWidth - 350, @DesktopHeight - 120, 正在执行: 第(" & $Mun & "/8)项 ", 1)
Next

就是想让调用的函数$tip为逐个ToolTip显示的结果或@error。
哎 菜鸟没思路

veket_linux 发表于 2012-12-30 14:34:00

用循环变量$Mun

ycy 发表于 2012-12-30 14:50:16

回复 2# veket_linux

额还是不太明白,可以有个实列么?

我可能说的不太详细,是这样的For $Mun = 2 To 1 Step -1
      Tip()
      finish()
      ...
;      Sleep(3000)
      ToolTip(@CR & $tip & @CR, @DesktopWidth - 350, @DesktopHeight - 120, "正在执行: 第(" & $Mun & "/8)项 ", 1)
Next
我想用 $tip来显示运行后每个函数的结果或@error,这样就能依次显示结果了,所以先瞎写一个望高手能理解我想要的思路,谢谢,预祝大家元旦快乐!成为高手没有烦恼呵呵

netegg 发表于 2012-12-30 15:07:39

没看懂。。。。。

ycy 发表于 2012-12-30 15:22:21

回复 4# netegg
For $Mun = 2 To 1 Step -1
      MsgBox (0,"","")
                If @error=0 Then $tip="成功运行"
      Sleep(3000)
                ToolTip(@CR & $tip & @CR, @DesktopWidth - 350, @DesktopHeight - 120, "正在执行: 第(" & $Mun & "/2)项 ", 1)
               
                MsgBox (0,"","")
                If @error=0 Then $tip="成功OK!"
      Sleep(3000)
      ToolTip(@CR & $tip & @CR, @DesktopWidth - 350, @DesktopHeight - 120, "正在执行: 第(" & $Mun & "/2)项 ", 1)
                ...
                .....
                ......
Next
;注:第一和第七行的MsgBox (0,"","")只是代表调用的一些不同的函数或UDF,,冒号为类似的程序一直下去,所以我只是想简化...

望高手能解决

netegg 发表于 2012-12-30 15:48:05

回复 5# ycy
还是不太明白,把代码贴全些

魔导 发表于 2012-12-30 18:01:09

For $i = 8 To 0 Step -1
ToolTip (A(),'','',$i)
Sleep(1000)
Next
func A()
Return @MSEC
endfunc

user3000 发表于 2012-12-30 18:17:53

回复 1# ycy Global $work, $tip

For $Mun = 1 To 2 Step 1
        $tip = '当前为第' & $Mun & '次循环'
      Tip()
                _Msg(@error)
                Sleep(2000)
      finish()
                _Msg(@error)
                Sleep(2000)
      ;...
      ToolTip(@CR & $tip & @CR, @DesktopWidth - 350, @DesktopHeight - 120, "正在执行: 第(" & $Mun & "/8)项 ", 1)
        Next
       

Func Tip()
        $work = 1
EndFunc

Func finish()
        $work = 2
        Return SetError(1, 0, $work)
EndFunc

       
Func _Msg($eCoce)
        If $eCoce Then
                ToolTip(@CR & $tip & @CR, @DesktopWidth - 350, @DesktopHeight - 120, "执行第 " & $work & " 个函数出错了.", 1)
        Else
                ToolTip(@CR & $tip & @CR, @DesktopWidth - 350, @DesktopHeight - 120, "执行第 " & $work & "个函数成功. ", 1)
        EndIf
EndFunc

netegg 发表于 2012-12-31 20:21:36

回复 3# ycy
$tip是从什么地方蹦出来的

netegg 发表于 2012-12-31 20:22:39

本帖最后由 netegg 于 2012-12-31 20:47 编辑

For $Mun = 2 To 1 Step -1
        func1()
        If @error = 0 Then showtip("成功运行", $Mun)
        func2()
        If @error = 0 Then showtip("成功OK!", $Mun)
Next
Func showtip($i, $y)
        ToolTip(@CR & $i & @CR, @DesktopWidth - 350, @DesktopHeight - 120, "正在执行: 第(" & $y & "/2)项 ", 1)
        Sleep(3000)
endfunc

这个意思?

shqf 发表于 2013-1-10 16:59:37

本帖最后由 shqf 于 2013-1-10 18:39 编辑

"$tip来显示运行后每个函数的结果或@error","依次显示结果",‘第(" & $Mun & "/8)项 "’
从楼主如上的片断语言中,似乎理解了楼主的意思,但只是猜呵。
既然要依次显示每项函数运行的结果,就不要用循环,如循环了,会多次地依次执行Wallpaper()、finish()那几个函数。
依次地运行函数并显示其结果,就达到了楼主的目的。
代码大概如下(仅表示思路,不能执行):Local $tip,$Mun = 0

Wallpaper()
Tip()
Sleep(3000)

finish()
Tip()
Sleep(3000)
......

Func Wallpaper()
        ......
        If <表达式成立> Then
                $tip = "成功"
        Else
                $tip = @error
        EndIf
        Return $tip
EndFunc   ;==>Wallpaper

Func finish()
        ......
        If <表达式成立> Then
                $tip = "成功"
        Else
                $tip = @error
        EndIf
        Return $tip
EndFunc   ;==>finish

Func Tip()
        $Mun = $Mun + 1
        ToolTip(@CR & $tip & @CR, @DesktopWidth - 350, @DesktopHeight - 120, "正在执行: 第(" & $Mun & "/8)项 ", 1)
EndFunc   ;==>Tip
页: [1]
查看完整版本: 依次调用自定义函数并及时显示结果?