Hola:
Como puedo hacer que un timer se detenga para posteriormente volver a activar, explico el caso:
defino un timer
Define TIMER oTmr INTERVAL 5000 ACTION CheckFile(oTmr) of oDlg
.
.
ACTIVATE TIMER oTmr
Function CheckFile(oTmr)
Select 1
Go 1
iF aRetiros->Ventas >= 15000
MsgAlert("Favor de Retirar Efectivo de Caja","Advertencia")
Endif
Return Nil
El caso es que el MsgAlert sale muchas veces sin esperar la confirmacion del usuario hasta que se sale, como debo hacer para que mande el mensaje, espere el "Enter de Usuario" (El que saca el propio Msgalert)
y continue el Timer enviando el mensaje siempre y cuando se cumpla la condicion, si no se cumple no envia nada, pero el timer debe seguir checando ese registro y cada vez que llegue o supere los 15,000 mande el mensaje al usuario, espero haberme explicado correctamente.
de antemano gracias por su valiosa ayuda
salu2
veracruz, Mexico
Dudas con Timer
Intenta esto a ver que tal va:
Function CheckFile(oTmr)
Select 1
Go 1
iF aRetiros->Ventas >= 15000
oTmr:DeActivate() <---------------------
MsgAlert("Favor de Retirar Efectivo de Caja","Advertencia")
oTnr:Activate() <---------------------
Endif
Return Nil
Si no te funciona, intenta esto otro.
Primero define una variable estática. Por ejemplo:
STATIC lMsg := .T.
Después el Timer:
Define TIMER oTmr INTERVAL 5000 ACTION if(lMsg,CheckFile(oTmr),NIL) of oDlg
Finalmente la función:
Function CheckFile(oTmr)
Select 1
Go 1
iF aRetiros->Ventas >= 15000
lMsg := .F. <---------------------
MsgAlert("Favor de Retirar Efectivo de Caja","Advertencia")
lMsg := .T. <---------------------
Endif
Return Nil
Esto debería funcionar. Mientras esté el MsgAlert, lMsg está a .F. y el timer no llama a la función. Cuando sales del MsgAlert, lMsg retorna a .T. y el timer vuelve a llamar a la función.
Function CheckFile(oTmr)
Select 1
Go 1
iF aRetiros->Ventas >= 15000
oTmr:DeActivate() <---------------------
MsgAlert("Favor de Retirar Efectivo de Caja","Advertencia")
oTnr:Activate() <---------------------
Endif
Return Nil
Si no te funciona, intenta esto otro.
Primero define una variable estática. Por ejemplo:
STATIC lMsg := .T.
Después el Timer:
Define TIMER oTmr INTERVAL 5000 ACTION if(lMsg,CheckFile(oTmr),NIL) of oDlg
Finalmente la función:
Function CheckFile(oTmr)
Select 1
Go 1
iF aRetiros->Ventas >= 15000
lMsg := .F. <---------------------
MsgAlert("Favor de Retirar Efectivo de Caja","Advertencia")
lMsg := .T. <---------------------
Endif
Return Nil
Esto debería funcionar. Mientras esté el MsgAlert, lMsg está a .F. y el timer no llama a la función. Cuando sales del MsgAlert, lMsg retorna a .T. y el timer vuelve a llamar a la función.
Nos Gusta Programar
-
- Posts: 159
- Joined: Fri Nov 18, 2005 7:34 pm