Page 1 of 1

Dudas con Timer

Posted: Mon Mar 13, 2006 4:14 pm
by servicomver
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

Posted: Tue Mar 14, 2006 7:23 pm
by manuramos
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.

Posted: Tue Mar 14, 2006 11:23 pm
by servicomver
Hola:

Solo para decirte que las opciones me han funcionado correctamente, gracias por tu tiempo y ayuda.
salu2
Veracruz; mexico