En un artículo anterior (Manejando eventos en un formulario) os hemos hablado de cómo podemos interactuar con la interfaz de determinados objetos tales como formularios, rejillas, etc. mediante el uso de las conexiones de evento y los eventos.
En este capítulo os explicaré de qué forma podemos atrapar en un evento la señal que lo ha disparado.
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 la tabla siguiente se muestran las distintas señales disponibles y qué es lo que devuelven en cada posición del array:

(Pulsa sobre la imagen para ampliarla)Podremos leer el contenido del array desde 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 la tabla anterior, en un array la primera posición es la 0. En este caso, todas las señales devuelven en la primera posición el código del comando. Lo devuelto en las posiciones siguientes dependerá del tipo de señal.
Las señales de tecla pulsada lo que devuelven es:
Tecla: Código ASCII la tecla pulsada.Shift?, Control? y Alt?: Para detectar si la tecla fue pulsada en combinación con las teclas Shift, Control y/o Alt, respectivamente. Devolverá 1 si la tecla Shift, Control y/o Alt fue pulsada y 0 si no lo fue.
Texto: Texto de la tecla pulsa. Ejemplo, si se ha pulsado la tecla "A", devolverá "A".
Las señales de ratón devuelven:Botón: Devolverá 1 si el botón pulsado es el izquierdo y 2 si es el derecho.
Shift?, Control? y Alt?: Para detectar si el botón fue fue pulsado en combinación con las teclas Shift, Control y/o Alt, respectivamente. Devolverá 1 si la tecla Shift, Control y/o Alt fue pulsada y 0 si no lo fue.
Pos X y Pos Y: Posición (X e Y) dentro de la ventana donde estaba el cursor cuando el botón fue pulsado.
Pos X y Pos Y Global: Posición (X e Y) de la pantalla donde estaba el cursor cuando el botón fue pulsado.
La señal de ventana movida devuelve: Old Pos X y Old Pos Y: Posición (X e Y) anterior de la venana.
Pos X y Pos Y: Nueva posición (X e Y) de la venana.La señal de ventana redimensionada devuelve:Old anchura X y Old altura: Altura y anchura anterior de la ventana.
Nueva anchura, Nueva altura: Nuevas dimensiones de la ventana.Las señales de Item devuelven:
Index fila e Index columna: Celda (fila y columna) del ítem que ha activado la señal.