|
|
|
|
|
Dicas
|
|
Visual Basic (Forms/MDI)
|
|
|
Título da Dica: Lidando com erros no evento Load dos formulários
|
|
|
|
Postada em 2/3/2004 por ^HEAVY-METAL^
Quando você carrega um formulário e encontra um erro logo no evento Load do form, o que você normalmente quer é dar uma mensagem para o usuário e descarregar o formulário. Porém, você encontra um problema para fazer isto. O problema é que você não pode usar o comando Unload para descarregar um formulário no seu evento Load.
A solução é postar uma mensagem para o formulário que tem o mesmo efeito do comando Unload e será processada após a saída do procedimento de evento Load. Usando a API PostMessage, você pode colocar uma mensagem WM_CLOSE na fila de mensagens da janela e sair do tratamento de erros com a certeza que o form será descarregado na sequência. Veja abaixo a declaração da API PostMessage e o envio da mensagem num tratamento de erros ocorridos durante a carga de um form.
Na seção de declarações do form:
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long
Private Const WM_CLOSE = &H10
No evento Load do form:
Private Form_Load ()
On Error GoTo ErroLocal
Dim lngX As Long
lngX = 1/0 'produz um erro de divisão por zero
Exit Sub
ErroLocal:
MsgBox "Ocorreu um erro de divisão por zero."
PostMessage hwnd, WM_CLOSE, 0&, 0&
End Sub
Até a próxima,
|
|
|
|
|