ramon Postado Maio 14, 2005 Denunciar Share Postado Maio 14, 2005 Porque o interval do timer não funciona neste caso? Teria como fazewr o interval do timer funcionar? Private Sub Form_Load() Call Timer1_Timer End Sub Private Sub Timer1_Timer() a = 9 End SubSe não da teria algum jeito de eu colocar um tempo (para executar o a sub tipo o interval do timer) dentro de uma sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 14, 2005 Denunciar Share Postado Maio 14, 2005 Porque o interval do timer não funciona neste caso? Teria como fazewr o interval do timer funcionar? Private Sub Form_Load() Call Timer1_Timer End Sub Private Sub Timer1_Timer() a = 9 End SubSe não da teria algum jeito de eu colocar um tempo (para executar o a sub tipo o interval do timer) dentro de uma sub Realmente não entendi... por que você pergunta pelo Interval se nem mesmo está utilizando ele no código?O código acima funcionou, mas ele simplesmente chama a rotina (o evento Timer do controle).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Maio 14, 2005 Autor Denunciar Share Postado Maio 14, 2005 Mas eu coloquei o intervalo nas propiedades dele e não funcionouColoque para você ver Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 14, 2005 Denunciar Share Postado Maio 14, 2005 Mas eu coloquei o intervalo nas propiedades dele e não funcionouColoque para você ver Eu coloquei, e funcionou normalmente. Mas, acho que agora entendi o que você quer. Você tem que entender que não é o evento (que nada mais é do que uma simples Sub) que verifica se o tempo atual está no intervalo para decidir se vai executar ou não. Dentro do timer é que verifica-se isso e então chama-se o evento. Ou seja, se você mandar executar uma sub no evento Load do form, não será ela executada? O que é Timer1_Timer()? Uma Sub. Logo, de acordo com o que eu disse na pergunta anterior, ela será executada independente do intervalo definido em Timer.Ou seja, não adianta você definir o Timer para 2000 (2 segundos) e logo em seguida chamar a sub Timer1_Timer(), porque ele *não* vai esperar 2 segundos para executá-la. Mas, se a primeira execução do evento é de acordo com o tempo definido em Interval, por que você precisa chamá-lo manualmente? Tire aquele "Call Timer1_Timer" e você terá a sub executada no intervalo defindo por Interval. Não?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Maio 14, 2005 Autor Denunciar Share Postado Maio 14, 2005 Ai que ta eu precisaria dar uma pausa em uma sub por isso estou usando o timerPois veja bem Private Sub Form_Load() Call a End Sub Sub a() Form2.Show 'aqui tem que dar uma pausa 'isso não acontece pois a execução retorna para o call 'eu queria que so retorna-se depois que eu executasse um evento no form 2 End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 14, 2005 Denunciar Share Postado Maio 14, 2005 Por que não fazer um Do While comum? A condição dele seria uma expressão que indicaria se o tal evento foi ou não executado. Quando o mesmo fosse executado, consequentemente o loop acabaria e o código continuaria sua execução normalmente. Vale lembrar que você terá que colocar um DoEvents ali dentro para não prender totalmente o processamento.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Maio 15, 2005 Autor Denunciar Share Postado Maio 15, 2005 É que eu queria que o loop para-se e depois de executar o timer volta-se.Se você usar em vez de um form usar um MSGBOX ai o laco para e volta depois de da ok ou seja depois de ocorrer um evento Private Sub Command1_Click() For a = 0 To 5 MsgBox "s" Next a End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 15, 2005 Denunciar Share Postado Maio 15, 2005 Se você usar em vez de um form usar um MSGBOX ai o laco para e volta depois de da ok ou seja depois de ocorrer um evento Um form modal tem o mesmo efeito, se não me engano. Não serviria para o caso? Afinal de contas, o loop estaria esperando o Form2 ser fechado.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Maio 15, 2005 Autor Denunciar Share Postado Maio 15, 2005 Ate serviria neste caso mas eu tenho um outro form que esta como modal e oi vb não aceita dois forms modal.não teria um outro jeito não? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 15, 2005 Denunciar Share Postado Maio 15, 2005 Ate serviria neste caso mas eu tenho um outro form que esta como modal e oi vb não aceita dois forms modal.não teria um outro jeito não? Acho que o melhor seria você explicar, exatamente e detalhadamente, o que você quer fazer. Acredito que vai ficar mais fácil de se formular uma solução.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Maio 16, 2005 Autor Denunciar Share Postado Maio 16, 2005 Simplesmente interromper o laco ao abrir o form é isso que eu queroSem trocar o valor da variavel do laço for Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 16, 2005 Denunciar Share Postado Maio 16, 2005 Simplesmente interromper o laco ao abrir o form é isso que eu queroSem trocar o valor da variavel do laço for Faça esse teste: For i = 1 To 3 If i = 1 Then Form2.Show End If Debug.Print i Do While Form2.Visible DoEvents Loop Next iO "1" vai ser impresso na janela Imediata e o form2 será aberto. Somente quando você fechar o form2 é que aparecerão o "2" e o "3". Seria isso?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Maio 21, 2005 Autor Denunciar Share Postado Maio 21, 2005 Sim mas ai você ficando executando um laco do while enquanto não fechar o form 2 fazendo o pc perder desempenho pois fica usando o processador a 100%E parabens pela moderação, você merece cara Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Maio 21, 2005 Denunciar Share Postado Maio 21, 2005 Sim mas ai você ficando executando um laco do while enquanto não fechar o form 2 fazendo o pc perder desempenho pois fica usando o processador a 100%Sim, isso é verdade. Porém, a presença do DoEvents ali fará justamente com que os recursos sejam liberados quando necessários.E parabens pela moderação, você merece cara Obrigado! Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ramon
Porque o interval do timer não funciona neste caso?
Teria como fazewr o interval do timer funcionar?
Se não da teria algum jeito de eu colocar um tempo (para executar o a sub tipo o interval do timer) dentro de uma sub
Link para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.