Eventos - como escolher o evento certo?

Não tenho por objetivo formular um “Guia completo de programação orientada a eventos”. Mas existem algumas formas de usar os eventos que embora difundidas, não são exatamente ideais. Embora não tenha conhecimento de tantas linguagens que usem eventos (JavaScript e Delphi) o conceito pode ser generalizado.
Na minha concepção, e provavelmente na de mais alguém (quem sabe até algum autor famoso) existem dois tipos de evento.

Eventos de interface

São os que capturam interações diretas na interface sem se importar com sua “semântica”, ou seja, sem se importar com a função desempenhada. Seriam eventos OnClick, OnMouseDown, OnKeyPress, e outros do tipo.

Esses eventos são aqueles que capturam exclusivamente acionamento de teclado ou mouse em algum item da interface.

Eventos para funções

Ao contrário dos eventos de interface, os funcionais se importam mais com o que está sendo feito do que em como está sendo feito. Obviamente eles também são disparados após uso do teclado ou mouse, mas eles são agora apenas meios de desempenhar uma ação. Essa ação sim, é o importante nesse caso.

Em JavaScript, ao invés de capturar o OnClick de um botão submit em um formulário, podemos capturar o evento OnSubmit, que é executado ao se submeter o formulário. Esse evento é disparado quando o formulário é submetido independente do comando dado para tal, inclusive no clique do botão submit.

Outros eventos dessa categoria são OnLoad, OnFocus e OnChange.

E quando mistura tudo…

Quando o tipo de evento usado é diferente do correto, às vezes as coisas funcionam. Mas na maioria das vezes funcionam mais ou menos. No exemplo dado do botão submit do formulário, uma possível validação funcionaria quando o usuário clicasse no botão. Mas o formulário também é submetido ao se pressionar Enter, e nesse caso o formulário seria enviado sem validação.

Em Delphi os datasets usados para acesso a banco de dados possuem eventos disparados por exemplo ao inserir, gravar ou apagar um registro. Usá-los é seguramente mais eficiente do que reproduzir o código em todos os botões e itens de menu que possam gerar essas ações, pois diminuem a chance de esquecer algum lugar.

Tentar cercar uma funcionalidade com eventos de interface quase sempre resultam em mais esforço inútil. Às vezes o programador tenta bloquear uma ação por 2, 3 eventos diferentes tentando evitá-la, mas deixa desprotegido por algum caminho que não conhecia. Apenas escolher melhor o evento a tratar costuma resolver.

Banco de Dados com Ferramentas Rad - Aplicações em Delphi

Banco de Dados com Ferramentas Rad - Aplicações em Delphi

JavaScript : Guia de Consulta Rápida

JavaScript : Guia de Consulta Rápida

Guia do Desenvolvedor de Delphi for .NET - Xavier Pacheco

Guia do Desenvolvedor de Delphi for .NET - Xavier Pacheco



Posts relacionados

One Comment

  1. Douglas via Rec6:

    Eventos - como escolher o evento certo? | Douglas Cunha…

    Existem algumas formas de usar os eventos nas linguagens de programação que embora difundidas, não são exatamente ideais. Mas algumas dicas podem ajudar a escolher melhores formas….

Deixe um comentário