Conexión de evento
Ver más
Conexión de evento
El subobjeto
Conexión de evento permite conectar un evento que contiene líneas de instrucción con una señal que provoca el disparo de dicho evento. Este subobjeto puede ser usado en Rejillas, Árboles, Formularios, Bloc de formularios, Casilleros, Multivista y Marco.
Para crear una conexión de evento hemos de pulsar el botón ![]()
Sus propiedades son:
Identificador: Etiqueta alfanumérica que identifica al objeto. Este identificador será el que se usa para referenciarlo en los inspectores y en las propiedades de otros objetos.
Nombre: Etiqueta alfanumérica que servirá como descriptor de la conexión de evento. Es el texto que se presentará al usuario final de la aplicación para referenciar la conexión de evento. Podemos definir una etiqueta por cada idioma presente en el proyecto.
Estilos: Podemos definir el estilo Privado que limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Comentarios: Esta propiedad nos permite documentar el uso de la conexión de evento.
Control: Define bien el objeto principal o bien un subobjeto como origen de la señal que dispara el evento.
Señal: Esta propiedad nos permite seleccionar qué suceso es el que desencadena el disparo del evento. Según el tipo de objeto o subobjeto estarán serán funcionales unas señales u otras. Las señales disponibles y los objetos o subobjetos en los que son funcionales:
Gana foco: El evento será disparado cuando el objeto o sub-objeto asociado a la conexión de evento gane el foco.
Pierde foco: El evento será disparado cuando el objeto o sub-objeto asociado a la conexión de evento pierda el foco.
Tecla pulsada: El evento será disparado cuando, estando el foco en el objeto o sub-objeto asociado a la conexión de evento , se pulse una tecla.
Tecla soltada: El evento será disparado cuando, estando el foco en el objeto o sub-objeto asociado a la conexión de evento , se suelte una tecla pulsada previamente.
Ratón: botón doble-click: El evento será disparado cuando se haga doble clic con el botón del ratón sobre el objeto o sub-objeto asociado a la conexión de evento .
Ratón: botón pulsado: El evento será disparado cuando se pulse un botón del ratón sobre el objeto o sub-objeto asociado a la conexión de evento ..
Ratón: botón soltado: El evento será disparado cuando se suelte un botón del ratón (pulsado previamente) sobre el objeto o sub-objeto asociado a la conexión de evento ..
Ratón: movimiento: El evento será disparado cuando se mueva el ratón sobre el objeto o sub-objeto asociado a la conexión de evento, dependiendo del objeto o sub-objeto esta señal solamente se disparará manteniendo pulsado un botón del ratón..
Ventana movida: El evento será dispardo cuando se mueva la ventana donde el objeto o sub-objeto asociado a la conexión de evento se encuentre contenido.
Ventana redimensionada: El evento será dispardo cuando se modifique el tamaño de la ventana donde el objeto o sub-objeto asociado a la conexión de evento se encuentre contenido.
Item: cambio de seleccionado: Conexión de evento específico para objetos o subcontroles de listas (rejillas, casilleros, etc.). El evento se disparará cuando cambie el elemento seleccionado en el objeto de lista asociado a a la conexión de evento.
Inicializado.
Timer: El evento asociado a la conexión de evento se disparará de forma periódica, según un tiempo que deberá ser configurado en el objeto asociado a la conexión de evento.
Botón pulsado: No es funcional en la versión actual.
Acción disparada: El evento asociado a la conexión de evento se disparará cuando se lance una acción concreta desde un subobjeto contenido en el objeto principal.
Item: activado: El evento asociado a la conexión de evento se disparará cuando se active un elemento del objeto o sub-objeto asociado a la conexión de evento.
Item: simple-click: El evento asociado a la conexión de evento se disparará cuando se haga un clic sobre un elemento del objeto o sub-objeto asociado a la conexión de evento..
Item: doble-click: El evento asociado a la conexión de evento se disparará cuando se haga doble clic sobre un elemento del objeto o sub-objeto asociado a la conexión de evento..
Drop finalizado.
NOTA: No todas las señales estarán disponibles para todos los objetos o subobjetos. Cuando programemos una conexión de evento las señales disponibles variarán en función del objeto o subojeto que asociemos a la misma.
Slot: Seleccionaremos el objeto evento que se ejecutará cuando se dispare la señal en el objeto o subobjeto seleccionados.
Las señales pueden ser leídas en los eventos que éstas disparen. Para ello será necesario crear una variable local al objeto (formulario, rejilla, marco, etc.) cuyo identificador sea EVENT_PARAMS, ésta tendrá que ser de tipo alfabético y tener activada la propiedad array. En el cuadro siguiente se muestran las distintas señales y qué es lo que devuelven en cada posición del array:
| Señal/Parámetros devueltos | Posición array | ||||||||
| Posición array-> | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| Nº de comando | Dato 1 | Dato 2 | Dato 3 | Dato 4 | Dato 5 | Dato 6 | Dato 7 | Dato 8 | |
| Gana foco | 0 | - | - | - | - | - | - | - | - |
| Pierde foco | 1 | - | - | - | - | - | - | - | - |
| Tecla pulsada | 2 | Tecla | Shift? | Control? | Alt? | Texto | - | - | - |
| Tecla soltada | 3 | Tecla | Shift? | Control? | Alt? | Texto | - | - | - |
| Ratón: Botón doble-click | 4 | Botón | Shift? | Control? | Alt? | Pos x | Pos y | Pos x global | Pos y global |
| Ratón: Botón pulsado | 5 | Botón | Shift? | Control? | Alt? | Pos x | Pos y | Pos x global | Pos y global |
| Ratón: Botón soltado | 6 | Botón | Shift? | Control? | Alt? | Pos x | Pos y | Pos x global | Pos y global |
| Ratón: Movimiento | 7 | Botón | Shift? | Control? | Alt? | Pos x | Pos y | Pos x global | Pos y global |
| Ventana movida | 8 | Old pos x | Old pos y | Pos x | Pos y | - | - | - | - |
| Ventana redimensionada | 9 | Old ancho | Old alto | New ancho | New alto | - | - | - | - |
| Item: Cambio de seleccionado | 10 | Pundir select | - | - | - | - | - | - | - |
| Inicializado | 11 | - | - | - | - | - | - | - | - |
| Timer | 12 | - | - | - | - | - | - | - | - |
| Botón pulsado | 13 | - | - | - | - | - | - | - | - |
| Acción disparada | 14 | - | - | - | - | - | - | - | - |
| Item: Activado | 15 | Index: Fila | Index: Columna | - | - | - | - | - | - |
| Item: Simple-click | 16 | Index: Fila | Index: Columna | - | - | - | - | - | - |
| Item: Doble-click | 17 | Index: Fila | Index: Columna | - | - | - | - | - | - |
| Drop finalizado | 18 | - | - | - | - | - | - | - | - |
Para poder atrapar la señal es necesario declarar en el objeto una variable local alfabética con la propiedad array a True cuyo identificador sea EVENT_PARAMS.
Podremos leer el contenido del array desede cualquier fórmula, siguiendo la siguiente sintaxis: EVENT_PARAMS[posicion], donde el parámetro posicion identifica la posición del array que se desee leer. Este dato podrá ser tanto una constante como una variable. Como puede verse en el esquema anterior, en un array la primera posición es la 0.
Es conveniente saber que los códigos de las teclas de control y de función multiplataforma devuelven números bastante elevados que provoca un formateo de la cadena devuelta si la imprimimos, y dará la impresión de ser el mismo, aunque realmente no sea así. Si al dato devuelto le aplicamos un formato mediante el uso de la función numberToString. Es decir, si en un evento disparado por una señal de tecla pulsada visualizamos el código de la misma (EVENT_PARAMS[1]), y pulsamos distintas teclas de función, veremos que siempre nos visualizará el valor 1.67773e+07, sin embargo, si usamos la función numberToString -Ejemplo: numberToString(EVENT_PARAMS[1], “f”, “g”)-, si se pulsa F1 devolverá el valor 16777264, si se pulsa F2 devolverá el valor el valor 16777265 y así sucesivamente.
