Pesquisar este blog

quarta-feira, 30 de outubro de 2013

FUNÇÃO E INSTRUÇÃO DE CONTROLE DO FLUXO DE EXECUÇÃO – RAISEEVENT

RaiseEvent


    Instrução empregada para disparar um evento declarado ao nível do módulo, dentro de uma classe, formulário ou documento, utilizando esta sintaxe:

RaiseEvent NomeDoEvento [(Argumentos)]

Onde,
  • NomeDoEvento: argumento obrigatório, que se refere ao nome de um procedimento de evento declarado como a instrução Event;
  • Argumentos: argumento opcional, refere-se à lista de valores passados para os argumentos do evento declarado, separados por vírgula.
As seguintes considerações são válidas sobre a instrução RaiseEvent:
  • O evento deverá sr necessariamente declarado dentro do módulo a partir do qual ele é disparado com uma instrução RaiseEvent, ou ocorrerá um erro em tempo de execução;
  • Não é possível disparar um evento de controle ou formulário utilizando-se a instrução RaiseEvent. Apenas eventos declarados com a instrução Event poderão ser utilizados ou ocorrerá um erro em tempo de execução;
  • Se o evento declarado possuir argumentos, estes devem ser envolvidos entre parênteses. Se o evento não possuir argumentos, os parênteses não devem ser utilizados ou ocorrerá erro em tempo de execução;
  • Se um evento for declarado com o mesmo nome de um mesmo nome de um evento nativo do formulário, então o evento do formulário deixará de ser disparado. Por exemplo, se você declarar um evento chamado Click em um módulo de formulário, o evento Form_Click não será mais disparado. Porém o evento Form_Click poderá ser executado normalmente a partir de outro procedimento utilizando-se uma instrução Call <NoemDoEvento>.
Exemplo: O exemplo a seguir demonstra como empregar uma instrução RaiseEent para disparar um evento declarado no módulo atual. Neste caso, o módulo é empregado para manipular os dados de um formulário que possui uma caixa de texto (txtTexto) que, ao ser alterada, marca a variável fAlterou para True. Quando o foco sai da caixa de texto, o evento txtTexto_LostFocus dispara e verifica o valor de fAlterou. Se fAlterou for True, a instrução  RaiseEvent dispara o evento TextoAlterado no formulário atual, com uma instrução RaiseEvent, passando-lhe como argumento a variável fCancel, a qual pode ou não ser manipulada pelo evento Form_TextoAlterado, impedindo a alteração da caixa de texto.

Public Event TextoAlterado(Cancel as Integer)

Sub txtTexto_Change

       fAlterou = True

End Sub

Sub txtTexto_LostFocus

Dim fCancel as integer

   If fAlterou Then
       RaiseEvent TextoAlterado(fCancel)

           If fCancel Then
               TxtTexto = “” ‘Usuário cancelou a alteração
           End If

   End If

End Sub

Até a Próxima!!

Nenhum comentário:

Postar um comentário