
olá...
Num project, declarei a variável Tempo as Integer em <General>.
O usuário abre um form e, depois de 1 minuto na tela (dentro das condições estabelecidas na rotina do Timer), ele encerra automaticamente. Contudo, se por qualquer razão, o usuário, após uns 40 seg, resolve fechar espontaneamente o form e, em seguida, acessa o mesmo form, então o timer conta os 40 seg da exposição anterior com 20 seg da atual exposição, encerrando o form. Ou seja, o tempo programado de 1 min se transforma em apenas 20 seg.
A função que é chamada (Finalizar) encerra o form, ocultando os campos. Ao final dela, coloquei a seguinte instrução: (If Tempo > 1 then Tempo = 0), tentando zerar o conteúdo da variável, toda vez que a função for ativada.
A rotina do timer é essa abaixo (as propriedades enabled e interval do timer estão definidas como "true" e "65.535").
Private Sub Timer8_Timer()
'A rotina abaixo faz com que uma ficha de saída exibida na
'tela, com os campos já preenchidos, seja encerrada em torno
'de 1 min. Se qualquer um dos campos abaixo estiver vazio,
'significa então que a ficha poderá estar sendo editada. Lo-
'go, o timer não atuará.
Tempo = Tempo + 1
If Frame4.Visible = True And Tempo = 1 Then
If Text17 > "" And Text13 > "" And Text15 > "" _
And Text16 > "" And Combo5 > "" And Combo6 > "" Then
Call Finalizar
MsgBox "Você estava consultando" & Chr(13) & _
"a ficha número " & Var & "...", vbOKOnly + vbInformation, "Ficha de saída"
Exit Sub
End If
End If
End Sub
Alguém pode ajudar?
Chico.
