LOOP ESPERANDO POR TIMER
Prezados... faz tempo que não utilizo o VB6, mas a situação é a seguinte:
O formulário tem um timer com enabled=false e interval=1000 (1 segundo).
Uma variável contem N
Habilito o timer (enabled=true)
Inicio um loop
dentro do loop verifico se a variável, antes com N passou para S e, caso positivo posso sair do loop
NÃO SE DEVE USAR SLEEP, que faria o programa aguardar N segundos, porque existe um Webbrowser carregando dados e sleep faria o webbrowser parar também.
Contudo, parece que o loop trava todo o equipamento, não permitindo a execução do timer... seguem os codes...
strSNJaPassouTempoEntreProcessos = [Ô]N[Ô]
intSegundosParaProximoProcesso = intSegundosParaAguardarParaRetornarDaVerificacaoDeProcessos
Timer1.Enabled = True
Do
DoEvents
If strSNJaPassouTempoEntreProcessos = [Ô]S[Ô] Then
Timer1.Enabled = False
strSNJaPassouTempoEntreProcessos = [Ô]N[Ô]
Exit Do
End If
Loop
Private Sub Timer1_Timer()
On Error Resume Next
[ô]Formar o aviso
intSegundosParaProximoProcesso = intSegundosParaProximoProcesso - 1
Me.lblAVISO.Caption = LTrim(RTrim(Piece(Me.lblAVISO.Caption, [Ô]>[Ô], 1))) & [Ô] > [Ô] & TransformaNumeroEmStringFormatada(intSegundosParaProximoProcesso, 0, [Ô].[Ô], [Ô][Ô], 2, [Ô]0[Ô]) & [Ô] segundos para próximo processo[Ô]
DoEvents
[ô]Caso tenha atingido o próximo processo então deverá prosseguir
If intSegundosParaProximoProcesso <= 0 Then
strSNJaPassouTempoEntreProcessos = [Ô]S[Ô]
End If
End Sub
A propriedade .Busy do webbrowser não funcionou... em nenhum momento...apresenta false (acabou de ler a página) mesmo antes do término da leitura...
Cansado, acabei por fazer uma gambiarra (acima) e pior: 20 anos de informática para fazer ganbiarra... é de rasgar o diploma... minha [Ô]desculpa[Ô] é não usar o VB6 profissionalmente há mais de 6 anos.
Alguém pode me ajudar?
O formulário tem um timer com enabled=false e interval=1000 (1 segundo).
Uma variável contem N
Habilito o timer (enabled=true)
Inicio um loop
dentro do loop verifico se a variável, antes com N passou para S e, caso positivo posso sair do loop
NÃO SE DEVE USAR SLEEP, que faria o programa aguardar N segundos, porque existe um Webbrowser carregando dados e sleep faria o webbrowser parar também.
Contudo, parece que o loop trava todo o equipamento, não permitindo a execução do timer... seguem os codes...
strSNJaPassouTempoEntreProcessos = [Ô]N[Ô]
intSegundosParaProximoProcesso = intSegundosParaAguardarParaRetornarDaVerificacaoDeProcessos
Timer1.Enabled = True
Do
DoEvents
If strSNJaPassouTempoEntreProcessos = [Ô]S[Ô] Then
Timer1.Enabled = False
strSNJaPassouTempoEntreProcessos = [Ô]N[Ô]
Exit Do
End If
Loop
Private Sub Timer1_Timer()
On Error Resume Next
[ô]Formar o aviso
intSegundosParaProximoProcesso = intSegundosParaProximoProcesso - 1
Me.lblAVISO.Caption = LTrim(RTrim(Piece(Me.lblAVISO.Caption, [Ô]>[Ô], 1))) & [Ô] > [Ô] & TransformaNumeroEmStringFormatada(intSegundosParaProximoProcesso, 0, [Ô].[Ô], [Ô][Ô], 2, [Ô]0[Ô]) & [Ô] segundos para próximo processo[Ô]
DoEvents
[ô]Caso tenha atingido o próximo processo então deverá prosseguir
If intSegundosParaProximoProcesso <= 0 Then
strSNJaPassouTempoEntreProcessos = [Ô]S[Ô]
End If
End Sub
A propriedade .Busy do webbrowser não funcionou... em nenhum momento...apresenta false (acabou de ler a página) mesmo antes do término da leitura...
Cansado, acabei por fazer uma gambiarra (acima) e pior: 20 anos de informática para fazer ganbiarra... é de rasgar o diploma... minha [Ô]desculpa[Ô] é não usar o VB6 profissionalmente há mais de 6 anos.
Alguém pode me ajudar?
Olá,
nao percebi o que vc quer fazer....
mas o webbrowser tem a propriedade readystate tente usar ela em vez do busy
té +
nao percebi o que vc quer fazer....
mas o webbrowser tem a propriedade readystate tente usar ela em vez do busy
webbrowser1.ReadyState = READYSTATE_COMPLETE
té +
Olá, amigo...
Muito, muito agradecido por sua resposta.
Não precisei usei o .busy e nem mesmo o.ReadState, meu cordial amigo...
Um mistério aconteceu... inseri um botão de comando, coloquei um msgbox no evento click do botão de comando, compilei a aplicação, executei o botão de comando com o simples msgbox, voltei ao código, apaguei o evento click do botão de comando e apaguei também o botão de comando... recompilei o programa, agora exatamente como estava antes... e FUNCIONOU...
Fiz exatamente os passos que narrei acima... não tenho a menor idéia de porque funcionou... digo, na lógica estava tudo certo, mas não funcionava... coloquei e tirei um botão de comando no formulário e o código (que nada tinha haver com o botão de comando inserido e retirado) passou a funcionar... não tenho a menor idéia do porque...
Mas melhor que tenha funcionado..,
Vou deixar o tópico aberto por mais 24 horas, para o caso de algum colega desejar responder e, após o prazo, finalizo o tópico.
Mais uma vez obrigado, GANDA_NICK.
Tudo de bom.
Muito, muito agradecido por sua resposta.
Não precisei usei o .busy e nem mesmo o.ReadState, meu cordial amigo...
Um mistério aconteceu... inseri um botão de comando, coloquei um msgbox no evento click do botão de comando, compilei a aplicação, executei o botão de comando com o simples msgbox, voltei ao código, apaguei o evento click do botão de comando e apaguei também o botão de comando... recompilei o programa, agora exatamente como estava antes... e FUNCIONOU...
Fiz exatamente os passos que narrei acima... não tenho a menor idéia de porque funcionou... digo, na lógica estava tudo certo, mas não funcionava... coloquei e tirei um botão de comando no formulário e o código (que nada tinha haver com o botão de comando inserido e retirado) passou a funcionar... não tenho a menor idéia do porque...
Mas melhor que tenha funcionado..,
Vou deixar o tópico aberto por mais 24 horas, para o caso de algum colega desejar responder e, após o prazo, finalizo o tópico.
Mais uma vez obrigado, GANDA_NICK.
Tudo de bom.
Tópico encerrado , respostas não são mais permitidas