timer con un boton

timer con un boton

Postby artu01 » Tue Sep 11, 2018 1:11 am

Gente:
Necesito programar un timer dentro de un botón que despues de 10 segundos de presionado muestre un msje
ayuda por favor

Hi guys,
I want to do a timer that shows a message after 10 seconds de pressing the button

please help me
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 397
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: timer con un boton

Postby Armando » Tue Sep 11, 2018 2:01 pm

Artu01:

A ver si me puedo explicar:

1.- Defines el objeto TIMER así: STATIC/LOCAL oTimer
2.- En el botón que active el timer pones como ACTION una función, así:
DEFINE BUTTON oBtns[01] OF oBar RESOURCE "New16" ACTION ActivaTimer()
3.- En la función ActivTimer() pones el siguiente código
Code: Select all  Expand view

STATIC FUNCTION Tiempo()
    LOCAL nIntervalo := 60000 * 15      // Cada 15 minutos se activará el timer

    IF nIntervalo > 0
        // 60,000 milesimas es igual a 1 minuto, se crea y se activa solo una vez
        DEFINE TIMER oTimer OF oWindow INTERVAL nIntervalo ACTION Ventana() // 600000 es igual a 10 minutos

        oTimer:Activate()
    ENDIF
RETURN(NIL)
 


4.- Si te fijas dentro del TIMER esta definida una función, Ventana(), en esa función metes el código
de lo que quieres que se haga.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3085
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: timer con un boton

Postby karinha » Tue Sep 11, 2018 2:57 pm

Image
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7352
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: timer con un boton

Postby karinha » Tue Sep 11, 2018 2:58 pm

Code: Select all  Expand view

//-> By Joao Santos - Sao Paulo - Brazil - kapiabafwh@gmail.com
//-> Participacao Especial, Vailton Renato - renato@kssoftware.com.br

#Include "FiveWin.Ch"

STATIC oDlgRelog, oTimerRelog, lDesliga := .F., oWnd, oTimerPorta
STATIC oFnt, oSaida

//---------------------------------------------------------------------------//

FUNCTION RELOG()

   LOCAL oSayMens, oFnt2, aGrad

   oSayMens := "This a Test message"

   aGrad := { { 0.30, CLR_BLACK, CLR_YELLOW},{ 0.70, CLR_YELLOW, CLR_BLACK } }

   DEFINE FONT oFnt  NAME "Arial"         SIZE 08,  20 BOLD
   DEFINE FONT oFnt2 NAME "Arial"         SIZE 00, -12 BOLD

   DEFINE DIALOG oDlgRelog FROM 3, 3 TO 20, 50                              ;
          TITLE "Test of Message with Timer"                                ;
          GRADIENT aGrad TRANSPARENT                                        ;
          STYLE nOR( DS_MODALFRAME )

   oDlgRelog:lHelpIcon := .F.

   @ .5,10 SAY oSayMens OF oDlgRelog SIZE 100, 12                           ;
           COLOR CLR_BLACK, CLR_WHITE TRANSPARENT ADJUST

   @ 5, 11 BUTTON oSaida PROMPT "&Timer" OF oDlgRelog                       ;
           SIZE 50, 14                                                      ;
           ACTION( ACIONA_TIMER( oWnd ) )

   oSaida:cToolTip := "Timer"

   SET FONT OF oSaida    TO oFnt
   SET FONT OF oDlgRelog TO oFnt2

   ACTIVATE DIALOG oDlgRelog CENTERED

   IF lDesliga
      oTimerRelog:DeActivate()
      oTimerPorta:DeActivate()
   ENDIF

   oFnt:End()
   oFnt2:End()

RETURN NIL

FUNCTION ACIONA_TIMER( oWnd )

   DEFINE TIMER oTimerPorta INTERVAL 50  OF oDlgRelog                        ;
          ACTION ACIONA_RELOGIO( oWnd )

   ACTIVATE TIMER oTimerPorta

RETURN NIL

FUNCTION ACIONA_RELOGIO( oWnd )

   LOCAL oFont

   DEFINE FONT oFont NAME "Arial" SIZE  0, -70 BOLD
   DEFINE FONT oFnt  NAME "Arial" SIZE 08,  20 BOLD

   DEFINE TIMER oTimerRelog INTERVAL 50                                      ;
          ACTION ExibeRelogio()

   ACTIVATE TIMER oTimerRelog

   SET FONT OF oDlgRelog TO oFont
   SET FONT OF oSaida    TO oFnt

   oFont:End()

   lDesliga := .T.  //-> Para Desligar o Timer

   oTimerPorta:DeActivate()

RETURN NIL

FUNCTION ExibeRelogio()

   LOCAL NewMensa := "Mensagem"

   // Mensageria
   IF ISWINDOWVISIBLE( oDlgRelog:hWnd )

       oDlgRelog:Say( 3, 01, NewMensa,                                      ;
                 CLR_YELLOW, CLR_BLACK,, .F. )
       // .T. Esquerda - .F. Direita da Dialog.

   ENDIF

RETURN NIL

//-> FIM / END
 



Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7352
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: timer con un boton

Postby artu01 » Wed Sep 12, 2018 12:16 am

Gracias Armando y Joao al fin pude entender como trabaja el timer

Asi lo hice y funciono!
Code: Select all  Expand view


STATIC oTmr

REDEFINE BUTTON oBtnE ID 4029 OF oFld:aDialogs[1]                    ;                    
ACTION ( ActivaTimer() , Proceso() )

Static Function ActivaTimer()
  DEFINE TIMER oTmr of oMainWnd INTERVAL 10000 ACTION MuestraMsje()
  ACTIVATE timer oTmr
Return Nil

Function MuestraMsje()
  Msgalert('Finalizo tiempo de espera')
  Proceso()
Return Nil

Function Proceso()
...


if ltimer
   otmr:deactivate()
endif
return nil
 


GRACIAS!!!
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 397
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: timer con un boton

Postby karinha » Wed Sep 12, 2018 12:13 pm

Very good. Muy bién!

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7352
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: timer con un boton

Postby Armando » Wed Sep 12, 2018 3:07 pm

Artu01:

Excelente, Cuando nos lo explican todo es mas sencillo :)

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3085
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 44 guests