Estou com problema quando utilizo um timer junto com um tprogress. Ocorre que assim que chamo o SetPos do progress o timer passa a desconsiderar o intervalo que foi definido para ele.
Por exemplo, crio um timer com intervalo de 15 segundos e ativo ele, até aqui tudo bem, no momento em que chamo o SetPos do progress o timer passa a executar a todo momento, não respeitando mais o intervalo.
veja um exemplo de código com o problema:
- Code: Select all Expand view RUN
#include "fivewin.ch"
Function U_NovoTeste()
Local oTimer := TTimer(10000,{||oTimer:DeActivate(),MsgStop("TIMER1"),oTimer:Activate()},oWndMain)
Local oTimer2 := TTimer(15000,{||oTimer2:DeActivate(),MsgStop("TIMER2"),oTimer2:Activate()},oWndMain)
oTimer:Activate()
oTimer2:Activate()
Return U_Proc()
Function U_Proc()
Local oDlg
Local oProgress
DEFINE DIALOG oDlg FROM 0,0 TO 500,500 TITLE "TESTE" PIXEL
oProgress := TProgress():New(50,00,oDlg,0,CLR_RED ,CLR_WHITE,.t.,.f.,oDlg:nWidth,8,,.f.,.f.)
TButton():New( 10,10, "exec", oDlg, {||U_Progress(oProgress)}, 40, 40,;
, , , .t., , ,;
,,, , ,)
ACTIVATE DIALOG oDlg
Return
Function U_Progress(oProgress)
If MsgYesNo("Proc?")
oProgress:SetPos(1)
EndiF
ThreadSleep(10)
Return