回复 15# q410225
水喔, 可以了, 另外想請問 $g_hTimer0 ~ $g_hTimer5 這個好像就不能用Eval..這要怎麼寫啊?
$g_hTimer0=TimerInit()
$g_hTimer1=TimerInit()
$g_hTimer2=TimerInit()
$g_hTimer3=TimerInit()
$g_hTimer4=TimerInit() 回复 16# ipmitool
应该是能用的吧,看看是不是别的地方错了 回复 17# q410225
如果是 $g_hTimer0 ~ 5
我寫成 $g_hTimer[$j] 會有錯
寫成 Eval('g_hTimer' & $j) 也不行耶
望大師指點... 回复 18# ipmitool
{:face (125):}
是
Eval('g_hTimer' & $j) =TimerInit()
这样,的确不行啊,
给你一个建议,Timer1~4只保留一个Timer1,稍微修改一下,
Func Timer1()
_TicksToTime(Int(TimerDiff($g_hTimer1)), $g_iHour1, $g_iMins1, $g_iSecs1)
Local $sTime1 = $g_sTime1 ; save current time to be able to test and avoid flicker..
$g_sTime1 = StringFormat("%02i:%02i:%02i", $g_iHour1, $g_iMins1, $g_iSecs1)
If $sTime1 <> $g_sTime1 Then _GUICtrlListView_SetItemText($hListView,0, $g_sTime1, 3)
EndFunc ;==>Timer1
然后buttone1就不再注册Timer1的时间了,而是把他放在_add_report_items111()里AdlibUnRegister('Timer1')
$g_hTimer1 = TimerInit()
AdlibUnRegister('Timer1')这样每次重新读取TXT的数据,计时器就会刷新了
AdlibUnRegister('Timer1')
$g_hTimer1 = TimerInit()
;Local $aNewList = _txttolistview()
$j = UBound($aNewList) - 1
If $aNewList[$j] = 'done' Then
MsgBox(0, "", "全部是done了,可以注销了")
AdlibUnRegister('_add_report_items111')
AdlibUnRegister('Timer1')
EndIf
$aNewList = 'done' ;先設第一個為Done
For $j = 1 To UBound($aNewList) - 1
If $aNewList[$j] = "done" Then
_GUICtrlListView_SetItemText($hListView, $j, "完成", 3)
EndIf
If $aNewList[$j] = "Preparing" Then
AdlibRegister('Timer1')
ExitLoop
EndIf
If $aNewList[$j] = "---" And $aNewList[$j - 1] = "done" Then
;~ MsgBox(0, "", "程序准备完成,可以运行" & $aNewList[$j], 1)
Run("_" & $aNewList[$j] & ".exe")
ExitLoop
EndIf
Next
回复 19# q410225
謝謝大師指點, 可是每遇到一個 Done 就要停止計時, 並且顯示在相對應的 process time 欄位
這樣只有一個 timer1 可以嗎? 回复 20# ipmitool
最大的问题还是在刷新listview的时候,process time的时间也会闪烁一下,要解决感觉有点复杂,
然后我主要修改了
Func _add_report_items111()
;判断计时器该在什么状况打开关闭重置
EndFunc
Func Timer1()
;获取$j,也就是计时器应该显示的位置,
;这里你需要自己修改一下,比如在_add_report_items111里把$j写到一个ini文件里,然后在Timer1再读取,
EndFunc
感觉_add_report_items111()的四种状态的判断还是太复杂,只需要判断是‘---’就运行指定程序,停止循环就可以了。
回复 21# q410225
感謝您的幫忙喔, 已解決嘍~
页:
1
[2]