LOOP ESPERANDO POR TIMER

SINCLAIR 10/02/2013 18:39:34
#419099
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?
GANDA.NICK 10/02/2013 19:03:13
#419100
Resposta escolhida
Olá,

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é +
SINCLAIR 10/02/2013 23:02:28
#419106
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.
Tópico encerrado , respostas não são mais permitidas