Definição de execução de eventos de componentes pelo VsScripter

Foi incluída a possibilidade de customização dos eventos dos componentes que estão nas telas do sistema através da utilização de scripts customizados via VsScripter.

Por exemplo, em uma tela de emissão de documentos fiscais onde será possível disparar a execução de comandos personalizados ao ser executado o evento onExit do campo de “código do cliente”.

Este recurso se encontra disponível no meu de “Eventos Via Scritpt”.

Localização no menu

Instruções:

Como realizar a customização de um evento:

  • Localize a tela que deseja efetuar a customização;

  • Abra esta tela e localize no menu “Eventos via Script” o sub-menu “Eventos de Componentes”;

  • Ao executar o comando, uma tela para edição será apresentada, conforme figura abaixo:

  • Localize o componente que deseja personalizar;

Antes de editar o script, localize na tela o(s) componente(s) que deseja personalizar, selecione um por vez e utilize os comandos Ctrl+Shift+F9 para identificar o nome do componente.

  • Dentro do editor do script, digite o nome do componente desejado, acrescente um ponto logo após o nome e tecle “ctrl+barra de espaço” para acessar o help sensível ao contexto e visualizar os comandos disponíveis para o componente escolhido. Seguindo o exemplo já incluído no editor, ficaria assim:

procedure MeuOnExit(Sender) begin inherited(Sender, 'OnExit'); EB_DESCRICAO.Text := EB_DESCRICAO.Text + '*'; end; begin EB_DESCRICAO.OnExit := 'MeuOnExit'; end

Neste exemplo, ao ser disparado o evento OnExit do campo EB_DESCRICAO a procedure MeuOnExit será executada e irá acrescentar o caracter '*' no final do conteúdo do campo citado.

Alguns pontos devem ser observados no exemplo citado:

  • A presença do inherited(Sender, 'OnExit') é obrigatória. Este comando indica que qualquer tratamento que já exista no evento OnExit será respeitado e executado. A posição do inherited define que o código original será executado ANTES do código que foi customizado (“EB_DESCRICAO.Text := EB_DESCRICAO.Text + '*';“). É possível organizar a ordem de execução conforme a necessidade, bastando para isso alterar posição do inherited. O sistema irá validar a existência do inherited e disparará um erro caso o mesmo não tenha sido incluído.

  • O segundo parâmetro deverá ser o nome do método que esta sendo customizado, neste caso o OnExit, para que o sistema saiba qual método ele deverá executar dentro do sistema. Esse parâmetro é Case Sensitive (ou seja, as letras maiúsculas e minúsculas devem ser digitadas do modo correto) e também é validado pelo sistema;

Finalizando, todos os eventos normalmente disponíveis dentro do ambiente de desenvolvimento (IDE do Delphi) estarão disponíveis para customização. No entanto vale lembrar que alguns componentes podem possuir eventos cujos parâmetros não sejam compatíveis inicialmente com o VsScripter. Estas situações serão analisadas e, quando possível, tratadas pela equipe de tecnologia.

Uma particularidade importante no funcionamento do VsScripter: a associação dos eventos deve sempre estar na ultima unit adicionada ao script, por exemplo, ao se adicionar um form no script, deve-se mover o código “EB_DESCRICAO.OnExit = 'MeuOnExit'“ para este form, pois este agora é a ultima unit do script.