Además de las manipulaciones explicadas en el vídeo, también debe tener en cuenta que:
No todos los objetos tienen los mismos eventos: por ejemplo, no se puede seleccionar el evento "On Data Change" para un botón, ya que no puede "entrar" en su contenido (título).
Estos son algunos ejemplos:
On Mouse Enter Cuando el ratón entra en el "espacio aéreo" de un objeto.
On Data Change A la salida de un campo o una variable cuyo contenido ha cambiado. Esto se utiliza sobre todo para los controles de entrada, formato (mayúsculas y minúsculas), búsquedas, re cálculos.
On Clicked Cuando se hace clic en un objeto (principalmente botones, pop-ups, menús, etc.) También se pueden utilizar en objetos editables.
On Getting Focus El objeto acaba de recibir el foco (de On Clicked, se utiliza con la tecla tab o por programación).
On Load Justo antes de que un formulario se muestre en la pantalla o se utilice durante una impresión. Durante este evento generalmente se realiza la inicialización.
On Printing Detail Durante la impresión de registros. Permite, por ejemplo, definir un valor para las variables de total, concatenación.
Esta lista le ayudará a entender los eventos. Puede consultar la documentación de 4D para obtener una descripción completa de los eventos.
Hay un detalle importante que los usuarios nuevos siempre preguntan: “¿Debo seleccionar los eventos de formulario o los eventos de objetos?” La respuesta es simple: todo depende de dónde va a crear su método. El método formulario, en teoría, sólo debe contener lo que es relevante para procesar todo el formulario:
redimensionamiento
llamada exterior
visualización/ocultar objetos
etc.
Mientras que los métodos objeto deben contener lo que es específico a cada objeto (botón, campo, etc.) Esa es la regla general y usted debe tener varias buenas razones antes de considerar romperla.
Recuerde:
Método formulario: centralizado, procesamiento global, fácil mantenimiento. Riesgo de ser ejecuto con más frecuencia de lo necesario.
Método objeto: específico, adaptado, ejecutado sólo cuando es necesario. Permite fácilmente mover un objeto utilizando copiar y pegar (sobre si utiliza punteros). Obliga a duplicar el método o llamar al método en cada objeto.
Lo que ocurre es que movemos ciertos procesos en el método formulario.
Por ejemplo, debe recalcular un valor en función de 10 parámetros editables. Para cada parámetro modificado, debe volver a realizar el cálculo. En lugar de poner la fórmula (o llamada de método) en cada uno de los 10 campos parámetros, es posible mover este cálculo en el método formulario.
En este caso, es más fácil y centralizado, sin embargo, es muy probable que el nuevo cálculo se efectúe con más frecuencia de lo necesario, especialmente durante la modificación de un área que no figura en el cálculo final. (Nota: 4D permite saber cuál fue el objeto modificado para que podamos adaptar el cálculo de acuerdo con esta información).
Es importante saber el orden en que los eventos se ejecutan. Por ejemplo, para un botón, los eventos se ejecutan en el siguiente orden:
On Mouse Enter
On Mouse Move
On Getting Focus
On Clicked (if any)
On Mouse Leave
On Losing Focus
Un campo o una variable en donde se haga clic:
On Mouse Enter
On Mouse Move
On Getting Focus
On Data Change (if any)
On Losing Focus
On Mouse Leave
Para ahorra tiempo al escribir su código y hacerlo más confiable, recuerde configurar macros (archivo “macros.xml”).
Por ejemplo, puede crear una macro que escriba el siguiente código cuando digite “#$evt” en su método:
Mientras esté aprendiendo a utilizar 4D, le recomendamos empezar por poner sus métodos en sus objetos, tendrá más flexibilidad para la actualización. Luego, comience por utilizar las llamadas de métodos genéricos y por último, cuando todo funcione correctamente, vea lo que puede pasar de los métodos objeto a su método formulario o métodos proyectos. A continuación, puede empezar a pasar punteros también.
Para ir más lejos: Dé una buena mirada a cómo funcionan los eventos, ya que le permitirá entender exactamente cuándo ejecutar su programación. También encontrará una serie de ideas para dar poderosos primeros pasos utilizando eventos tales como:
On Drag Over
On Drop
On Selection Change
más los tres eventos ’On Mouse’ (Move, Leave, Enter)