Função DoEvents

Nota: A função, método, objeto ou propriedade descrita neste tópico está desativada se o Serviço Microsoft Jet Expression estiver em execução no modo sandbox, o que impede a avaliação de expressões potencialmente inseguras. Para obter mais informações sobre o modo sandbox, procure "modo sandbox" na Ajuda.

Gera a execução para que o sistema operativo possa processar outros eventos.

Sintaxe

DoEvents ( )

Observações

A função DoEvents devolve um Número Inteiro que representa o número de formulários abertos em versões autónomas do Microsoft Visual Basic, como o Visual Basic, Professional Edition. O DoEvents devolve zero em todas as outras aplicações.

O DoEvents passa o controlo para o sistema operativo. O controlo é devolvido depois de o sistema operativo terminar de processar os eventos na fila e todas as chaves na fila SendKeys terem sido enviadas .

O DoEvents é mais útil para aspetos simples, como permitir que um utilizador cancele um processo depois de ter começado, por exemplo, uma pesquisa de um ficheiro. Para processos de execução prolongada, a cativação para o processador é melhor conseguida com um Temporizador ou delegando a tarefa a um componente EXE ActiveX. Neste último caso, a tarefa pode continuar completamente independente da sua aplicação e o sistema operativo trata da multitasking e da segmentação de tempo.

Sempre que ceder temporariamente ao processador num procedimento de evento, certifique-se de que o procedimento não é executado novamente a partir de uma parte diferente do código antes da primeira chamada ser devolvida; isto pode causar resultados imprevisíveis. Além disso, não utilize DoEvents se outras aplicações possam interagir com o seu procedimento de formas imprevistas durante o tempo em que deu controlo.

Exemplo

Nota: Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.

Este exemplo utiliza a função DoEvents para fazer com que a execução produza para o sistema operativo uma vez a cada 1000 iterações do ciclo. O DoEvents devolve o número de formulários do Visual Basic abertos, mas apenas quando a aplicação anfitriã é o Visual Basic.

' Create a variable to hold number of 
' Visual Basic forms loaded and visible.
Dim I, OpenForms
For I = 1 To 150000 ' Start loop.
If I Mod 1000 = 0 Then ' If loop has repeated
' 1000 times.
OpenForms = DoEvents ' Yield to operating system.
End If
Next I ' Increment loop counter.

As informações foram úteis?

Para proteger a sua privacidade, não inclua informações de contacto nos seus comentários. Reveja o nosso Política de privacidade.