USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Zerar variável em evento timer...
ChicoVieira
CRUZEIRO
SP - BRASIL
Postada em 06/01/2006 22:03 hs            
Amigos, estou há dias brigando com um timer que aceite zerar uma variável que conta o tempo de exposição de um form na tela.
O código dos forms é o seguinte (o exemplo é bem simples, só para ilustrar a questão):
‘(Formulário Abertura)
Private Sub cmdResultado_Click()
    frmResultado.Show
End Sub
‘(Formulário Resultado)
Private Sub cmdSair_Click()
Timer1.Enabled = False
T = 0
Unload Me
End Sub
Private Sub Form_Load()
    Timer1.Enabled = True ‘Inicia a contagem de tempo.
End Sub
Private Sub Timer1_Timer()
Static T As Integer
T = T + 1
If T = 2 Then  ‘Se contagem = 2 min
    T = 0
    Timer1.Enabled = False
    Unload Me   
    End If
End Sub
--------------------------------------------------------------
Startup object é o frmAbertura.
O timer1 tem interval = 65.530
Sempre que se clicar no botão <Resultado> do frmAbertura, o frmResultado será exibido, e o timer iniciará a contagem do tempo. Decorridos aprox. 2 min, o frmResultado será descarregado.
Contudo, se clicar no botão <Sair> do frmResultado após 01:30 min do evento <Load> desse form, a variável T não é zerada. Ou seja, clicando a seguir no botão <Resultado> do frmAbertura, o frmResultado será descarregado em aprox. 30 seg. e não em 02:00 min.
Como devo proceder para que a variável seja zerada, qualquer que seja o momento em que eu clique no botão <Sair>?
Agradeço a colaboração.
Chico.
     
vaini
não registrado
Postada em 07/01/2006 06:45 hs   
Bom dia Chico.
 
Gostaria que voce explicasse melhor como esta contanto esses dois minutos.
 
Em todo o caso tente usar essa função

Public Sub Espere(ByVal QtdSegundos As Long)
   Static Início As Variant
   If Início = 0 Then Início = Time
   While DateDiff("s", Início, Time) < QtdSegundos
       DoEvents   'faça outras coisas enquanto espera
       If DateDiff("s", Início, Time) < 0 Then 
            Início = DateAdd("s", -86400, Início)
       End if
   Wend
   Início = 0
End Sub
 
Para chamar a rotina use Espere (120) onde os 120 sao segundos
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página