Além das manipulações explicadas no vídeo, também se deve levar em conta que:
Não todos os objetos têm os mesmos eventos: por exemplo, não se pode selecionar o evento "On Data Change" para um botão, como não pode "entrar" em seu conteúdo (título).
Estes são alguns exemplos:
On Mouse Enter Quando o mouse entra no "espaço aéreo" de um objeto.
On Data Change Ao sair de um campo ou uma variável cujo conteúdo foi mudado. Isto se utiliza sobre todo para os controles de entrada, formato (maiúsculas e minúsculas), pesquisas e cálculos.
On Clicked Quando é feito clique em um objeto (principalmente botões, pop-ups, menus, etc.) Também podem ser utilizados em objetos editáveis.
On Getting Focus O objeto acaba de receber o foco (de On Clicked, se utiliza com a tecla tab ou por programação).
On Load Justo antes que um formulário seja mostrado na tela ou se utilize durante uma impressão. Durante este evento geralmente se realiza a inicialização.
On Printing Detail Durante a impressão de registros. Permite, por exemplo, definir um valor para as variáveis de total, concatenação.
Esta lista lhe ajudará a entender os eventos. Pode consultar a documentação de 4D para obter uma descrição completa dos eventos.
Há um detalhe importante que os usuários novos sempre perguntam: “¿Devo selecionar os eventos de formulário ou os eventos de objetos?” A resposta é simples: tudo depende de onde vai ser criado seu método. O método formulário, em teoria, só deve conter o que é relevante para processar todo o formulário:
Redimensionar
Chamada exterior
Visualização/ocultar objetos
etc.
Enquanto os métodos objeto devem conter o que é específico a cada objeto (botão, campo, etc.) Essa é a regra geral e você deve ter boas razões antes que a considere quebrar.
Lembre:
Método formulário: centralizado, processamento global, fácil manutenção. Risco de ser executado com mais frequência do que o necessário.
Método objeto: específico, adaptado, executado somente quando seja necessário. Permite facilmente mover um objeto utilizando copiar e colar (sobre se utiliza ponteiros). Obriga a duplicar o método ou chamar ao método em cada objeto.
O que sucede é que movemos certos processos no método formulário.
Por exemplo, deve recalcular um valor em função de 10 parâmetros editáveis. Para cada parâmetro modificado, deve voltar a realizar o cálculo. No lugar de colocar a fórmula (ou chamada de método) em cada um dos 10 campos parâmetros, é possível mover este cálculo no método formulário.
Neste caso, é mais fácil e centralizado, no entanto, é bem provável que o novo cálculo se realize com maior frequência do que o necessário, especialmente durante a modificação de uma área que não figura no cálculo final. (Nota: 4D permite saber qual foi o objeto modificado para que podamos adaptar o cálculo de acordo com esta informação).
É importante saber a ordem em que os eventos se executam. Por exemplo, para um botão, os eventos se executam na seguinte ordem:
On Mouse Enter
On Mouse Move
On Getting Focus
On Clicked (if any)
On Mouse Leave
On Losing Focus
Um campo ou uma variável onde seja feito clique:
On Mouse Enter
On Mouse Move
On Getting Focus
On Data Change (if any)
On Losing Focus
On Mouse Leave
Para economizar tempo ao escrever seu código e torná-lo mais confiável, lembre configurar macros (archivo “macros.xml”).
Por exemplo, pode criar um macro que escreva o seguinte código quando digite “#$evt” em seu método:
Enquanto esteja aprendendo a utilizar 4D, lhe recomendamos começar por colocar seus métodos em seus objetos, terá maior flexibilidade para a atualização. Logo, comece por utilizar as chamadas de métodos genéricos e por último, quando tudo funcione corretamente, veja o que pode passar dos métodos objeto a seu método formulário ou métodos projetos. A continuação pode começar a passar ponteiros também.
Para ir mais longe: Dê uma boa olhada a como funcionam os eventos, já que lhe permitirá entender exatamente quando executar sua programação. Também encontrará uma série de ideias para dar poderosos primeiros passos utilizando eventos tais como:
On Drag Over
On Drop
On Selection Change
mais os três eventos ’On Mouse’ (Move, Leave, Enter)