Última actualización
Última actualización
El subobjeto conexión de evento permite conectar un manejador de evento, etc.
Para crear una conexión de evento hemos de pulsar el botón en el panel de subobjetos de Velneo vDevelop.
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.
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.
Podemos definir el estilo siguiente:
Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Esta propiedad nos permite documentar el uso de la conexión de evento.
Este parámetro desplegará la lista con todos los objetos/controles accesibles desde el origen actual. Si algún sub-objeto contiene a su vez otros controles, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos.
Esta propiedad nos permite seleccionar qué suceso es el que desencadena el disparo del manejador de 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:
El manejador de evento asociado a la conexión de evento se disparará cuando se lance una acción concreta. Esta señal solamente puede ser atrapada si se lanza en el contexto del objeto, no puede ser atrapada desde otros objetos. Por ejemplo, en un formulario podremos atrapar las acciones que se disparen desde botones del formulario, o desde menús incluidos en botones del mismo, etc. En una rejilla, podremos atrapar las acciones que se disparen desde la toolbar asociada a la misma.
El manejador de evento asociado a la conexión de evento se disparará cuando el botón que hayamos especificado en la conexión de evento sea pulsado.
Solamente válida para el control visor html. El manejador de evento asociado a la conexión se disparará cuando cambie el contenido de un control editable dentro de la página web que se está mostrando en el visor html.
Señal específica para objetos que tenga activada la funcionalidad de drag & drop. Disparará el manejador de evento asociado a la conexión de evento cuando haya finalizado el drop.
Solamente funcional en rejillas editables. El manejador de evento asociado a la conexión se disparará cuando se inicie la edición de un registro en la rejilla.
Solamente funcional en rejillas editables. El manejador de evento asociado a la conexión se disparará con posterioridad a la aceptación de la edición de un registro en la rejilla.
Solamente funcional en rejillas editables. El manejador de evento asociado a la conexión se disparará con posterioridad a la cancelación de la edición de un registro en la rejilla.
Solamente funcional en rejillas editables. El manejador de evento asociado a la conexión se disparará cuando antes de finalizar la edición (guardando cambios) de un registro en la rejilla. Usaremos esta señal si queremos, por ejemplo, hacer algún tipo de comprobación previa al alta/modificación de la ficha.
Solamente funcional en rejillas editables. El manejador de evento asociado a la conexión se disparará cuando antes de hacerse efectiva la cancelación de la edición de un registro en la rejilla. Usaremos esta señal si queremos, por ejemplo, hacer algún tipo de comprobación previa a la cancelación del alta/modificación de la ficha.
En el manejador de evento que se dispara en señales pre-aceptada, pre-cancelada, debemos evitar mostrar mensajes puesto que generará problemas con el foco cuando estamos en edición (por ejemplo si usamos un comando set retorno = NO).
El manejador de evento será disparado cuando el objeto o sub-objeto asociado a la conexión de evento gane el foco.
El manejador de 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.
Conexión de evento específico para objetos o subcontroles de listas (rejillas, casilleros, etc.) y formularios. El manejador de evento se disparará cuando cambie el elemento seleccionado en el objeto de lista asociado a a la conexión de evento.
En objetos de lista, el origen del evento será la ficha de origen. En el caso de que queramos acceder a la ficha de destino en el manejador de evento usaremos el comando de instrucción Leer ficha seleccionada.
En formularios, la señal se disparará después de la inicialización de la ficha y en el cambio de ficha mostrada. Éste último caso es útil en visualizaciones sincronizadas (multivista, etc.) en las que cambia la ficha y permanece el formulario construido inicialmente.
El manejador de 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.
El manejador de 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.
Solamente funcional en el control visor html. El manejador de evento asociado a la conexión se disparará cuando pulsamos un enlace.
Para que un control HTML lance esa señal, será necesario ejecutaren el evento inicializado del formulario donde se incluya un manejador de evento JavaScript con un código similar al siguiente:
Con la función setLinkDelegationPolicy le decimos al navegador cómo queremos que gestione los link pulsados:
DontDelegateLinks: en este modo el navegador gestiona todos los enlaces.
DelegateExternalLinks: en este modo el navegador gestiona los enlaces internos (del sistema de ficheros local) y emite la señal LinkClicked(url) para los externos.
DelegateAllLinks: en este modo emite la señal LinkClicked(url) para todos los enlaces.
El modo por defecto es DontDelegateLinks. Si el navegador gestiona un enlace emite la señal LoadStarted y, si no, emite la señal LinkClicked(url), en cuyo caso hay que cargar la página en el manejador del evento o realizar la acciones que consideremos oportunas.
Solamente funcional en el control visor html. El manejador de evento asociado a la conexión se disparará al finalizar la página.
Solamente funcional en el control visor html. El manejador de evento asociado a la conexión se disparará durante la carga de la página.
Esta señal es específica para el marco principal del proyecto. Se disparará cuando el marco de la aplicación sea cerrado por cualquier método o acción del usuario, tanto a través del teclado como usando el ratón.
El manejador de evento será disparado cuando el control asociado a la conexión de evento deje de estar visible.
En el manejador de evento disparado desde eta señal no se debe actuar sobre el objeto que se oculta o sobre sus sub-objetos, ya que la señal se dispara precisamente cuando éste ya se ha ocultado.
El manejador de evento será disparado cuando el control asociado a la conexión de evento se haga visible.
No se deben usar comandos que generen interfaz en manejadores de evento disparados con esta señal.
El manejador de evento será disparado cuando el objeto o sub-objeto asociado a la conexión de evento pierda el foco. En rejillas editables, debemos tener en cuenta lo siguiente: para que se inicie la edición de una celda tiene que ganar foco, por lo que la rejilla pierde foco. Así que se disparará la señal de pérdida de foco cada vez que iniciemos la edición en cada celda individual.
No se deben mostrar mensajes o formularios en los manejadores de evento disparados con esta señal de pérdida foco, porque eso produce efectos secundarios ya que a su vez estamos generando nuevas pérdidas de foco.
En las rejillas editables los eventos de ganancia y de pérdida de foco tienen un comportamiento particular: la señal de ganancia de foco se emite cuando se entra en la edición de cada columna y la de pérdida de foco cuando pierde el foco la rejilla. Gracias a que el de pérdida de foco no se produce en cada entrada en edición, podemos controlar la ejecución del manejador de evento asociado a la ganancia de foco para que solo se realice la primera vez que gana foco, utilizando una variable local booleana que se pondrá a 1 cuando se ejecuta el evento de ganancia de foco y a 0 cuando se ejecute la pérdida de foco de la rejilla.
Si cuando estamos editando una columna de una rejilla editable pulsamos la tecla enter para grabar la ficha, no se disparará el evento de pérdida de foco, ya que realmente el foco no cambia, simplemente se mantinen en la columna y se graba la ficha.
Se dispara cuando el objeto ha sido inicializado. Esta señal solamente puede ser atrapada desde el propio objeto, no puede ser atrapada desde otros objetos. Esta señal es disparada después de construirse el objeto.
Se dispara antes de inicializarse el objeto. Con esta señal, podremos disparar manejadores de evento que realicen operaciones antes de que el objeto sea presentado al usuario. Esta señal solamente puede ser atrapada desde el propio objeto, no puede ser atrapada desde otros objetos.
Dado que la señal se dispara antes de crearse el objeto, no podremos usar en el manejador de evento que se dispare instrucciones que afecten a la interfaz, ya que no se ha construido todavía.
Esta señal es específica para el marco principal del proyecto. El manejador de evento será disparado cuando se cierre una vista y antes de que ésta sea cerrada.
El manejador de 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.
El manejador de 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.
El manejador de 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 .
El manejador de 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.
El manejador de evento será disparado cuando, estando el foco en el objeto o sub-objeto asociado a la conexión de evento , se pulse una tecla.
Esta señal no es funcional ni en Android ni en iOS.
El manejador de 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.
Esta señal no es funcional ni en Android ni en iOS.
El manejador de 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. Debemos tener en cuenta que los timers disparan eventos que fuerzan el refresco de los controles, así que, si coincide que estamos escribiendo en un control de edición de un texto y cuando pulsamos la barra espaciadora para incluir un espacio en blanco se dispara el timer, como éste refresca los controles, al refrescarlo eliminará ese espacio en blanco no significativo.
Solamente funcional en el control visor html. El manejador de evento asociado a la conexión se disparará cuando cambie la URL que se está mostrando.
El manejador de evento será disparado cuando cambie el valor del sub-objeto editado en un control de un formulario, o en una columna editable de una rejilla editable. Esta señal solamente se dispara cuando es el usuario quien cambia el contenido del control escribiendo directamente sobre el mismo, pero no cuando modificamos el mismo de forma externa (desde otro manejador de evento, con una acción de tipo ficha: localizar maestro, etc.).
Debido a cómo funciona el teclado en Android, la señal no se disparará hasta que se se tabule o se acepte lo escrito en el control.
El manejador de evento será disparado cuando se mueva la ventana donde el objeto o sub-objeto asociado a la conexión de evento se encuentre contenido.
El manejador de evento será disparado 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.
Esta señal es específica para el marco principal del proyecto. El manejador de evento será disparado cuando se active una vista dentro del marco.
Esta señal es específica para el marco principal del proyecto. El manejador de evento será disparado cuando se añada una nueva una vista dentro del marco.
Esta señal es específica para el marco principal del proyecto. El manejador de evento será disparado cuando se cierra una nueva una vista dentro del marco, después de ser cerrada.
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 subobjeto que asociemos a la misma.
El orden básico es:
Previo a la ejecución.
Botón pulsado.
Comando del botón.
Posterior a la ejecución.
Si usamos las señales de tecla pulsada/tecla soltada, el orden es:
Tecla pulsada.
Tecla soltada.
Previo a la ejecución.
Botón pulsado.
Comando del botón.
Posterior a la ejecución.
Si usamos la señales de ratón: botón pulsado y ratón: botón soltado, el orden es:
Ratón: botón pulsado.
Ratón: botón soltado.
Previo a la ejecución.
Botón pulsado.
Comando del botón.
Posterior a la ejecución.
Debemos ser conscientes de que, cuando se ejecuta un manejador de evento, no se dispararán otras señales y sus manejadores de evento, ya que podría dar lugar a recursividad o ejecuciones en cascada no deseadas.
Lo veremos más claro con un ejemplo:
Hemos programado un manejador de evento que se dispara con la señal “gana foco” asociada a un control de un formulario, y programamos otro manejador de evento que lleva el foco a dicho control con el comando interfaz: establecer foco.
Según lo dicho antes, al ejecutar el manejador de evento que establece foco en el control, no se disparará la señal de ganancia de foco, por lo tanto, si queremos que se ejecute el manejador de evento asociado a la misma, lo único que tendremos que hacer es, en el manejador de evento que establece el foco, disparar el otro manejador de evento con el comando Interfaz: ejecutar evento.
Si tenemos programadas varias conexiones de evento asociadas a un mismo control y con la misma señal, solamente se disparará la primera de ellas.
Por ejemplo, si hemos programado varias conexiones de evento del tipo “gana foco” sobre el mismo control, sólo se lanza la primera de ellas y no el resto.
Lo que se podría hacer es declarar una única señal del tipo “gana foco” que dispare un manejador de evento que lance todos los manejadores que se quieran ejecutar al ganar foco el control.
En las rejillas, por ejemplo, nos encontramos que podemos aplicar ambas señales, sin embargo debemos tener en cuenta que si declaramos las 2 señales nos vamos a encontrar con que al hacer simple clic se dispara la señal correspondiente, sin embargo hacer doble clic también se va a disparar la señal de simple clic, algo que puede no ser lo esperado, pero que debemos tenerlo en cuenta.
En conclusión: un mismo control no puede tener asociadas estas dos señales.
A continuación mostramos una lista de las señales que son funcionales en los distintos objetos y sub-objetos de aplicación de Velneo.
Acción disparada Item: activado Item: cambio de seleccionado Item: doble clic Item: simple clic Lista cambiada On hide Oshow Post-inicializado Pre-inicialización Timer Ventana movida Ventana redimensionada
Acción disparada Drop finalizado Gana foco Item: activado Item: cambio de seleccionado Item: doble-click Item: simple-click Lista cambiada On hide On show Pierde foco Post-inicializado Pre-Inicialización Tecla pulsada Tecla soltada Ventana movida Ventana redimensionada
Acción disparada Item: cambio de seleccionado Lista cambiada. On hide On show Post-inicializado Pre-Inicialización Ventana movida Ventana redimensionada
Acción disparada Drop finalizado Gana foco Item: activado Item: cambio de seleccionado Item: doble-click Item: simple-click Lista cambiada On hide On show Pierde foco Post-inicializado Pre-Inicialización Tecla pulsada Tecla soltada Timer Ventana movida Ventana redimensionada
Acción disparada Drop finalizado Gana foco Item: activado Item: cambio de seleccionado Lista cambiada On hide On show Pierde foco Post-inicializado Pre-Inicialización Tecla pulsada Tecla soltada Timer Ventana movida Ventana redimensionada
Acción disparada Item: cambio de seleccionado (para formularios con origen) Item: pre-cambio de seleccionado (para formularios con origen) On hide On show Post-inicialización Pre-Inicialización Timer
Barra de progreso
On hide On show Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Ventana movida Ventana redimensionada
Botón
Botón pulsado Gana foco On hide On show Previo a la ejecución Pierde foco Posterior a la ejecución Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Tecla pulsada Tecla soltada Ventana movida Ventana redimensionada
Botón de check
Gana foco On hide On show Pierde foco Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Tecla pulsada Tecla soltada valueChanged Ventana movida Ventana redimensionada
Botón de radio
Gana foco On hide On show Pierde foco Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Tecla pulsada Tecla soltada valueChanged Ventana movida Ventana redimensionada
Caja de formularios
Item: cambio de seleccionado On hide On show Ventana movida Ventana redimensionada
Caja de grupo
On hide On show Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Ventana movida Ventana redimensionada
Caja de texto y caja de texto enriquecido
Gana foco On hide On show Pierde foco Tecla pulsada Tecla soltada Value changed Ventana movida Ventana redimensionada
Calendario
Gana foco On hide On show Pierde foco Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Tecla pulsada Tecla soltada valueChanged Ventana movida Ventana redimensionada
ComboBox
Gana foco Item: activado Item: cambio de seleccionado On hide On show Pierde foco Tecla pulsada Tecla soltada Ventana movida Ventana redimensionada
Controles SVG
Gana foco On hide On show Pierde foco Tecla pulsada Tecla soltada Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Tecla pulsada Tecla soltada valueChanged (solamente para botones SVG tipo Toggle y Slide) Ventana movida Ventana redimensionada
Data Catcher Edit
Gana foco On hide On show Pierde foco Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Tecla pulsada Tecla soltada valueChanged Ventana movida Ventana redimensionada
Deslizador
Gana foco On hide On show Pierde foco Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Tecla pulsada Tecla soltada valueChanged Ventana movida Ventana redimensionada
Dial
Gana foco On hide On show Pierde foco Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Tecla pulsada Tecla soltada valueChanged Ventana movida* Ventana redimensionada
Dibujo
On hide On show Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Ventana movida Ventana redimensionada
Edición alfabética, hora, fecha, fecha-hora, numérica, senda fichero senda directorio y fórmula
Gana foco On hide On show Pierde foco Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Tecla pulsada Tecla soltada valueChanged Ventana movida Ventana redimensionada
Imagen SVG
On hide On show Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Ventana movida Ventana redimensionada
Layout, espaciador fijo, espaciador expandible y espaciador fijo
Ninguna
ListBox
Gana foco
Item cambio de seleccionado
Lista cambiada
On hide
On show
Pierde foco
Tecla pulsada
Tecla soltada
Ventana movida
Ventna redimensionada
Manómetro
On hide On show Ratón: botón doble-click Ratón: botón pulsado Ratón: botón soltado Ratón: movimiento Ventana movida Ventana redimensionada
Menú arbolado