El comando WR ON EVENT instala metodo como el método a llamar cada vez que evento ocurre en area. Los eventos se pasan directamente a metodo antes de ser tratados por 4D Write.
Si area es igual a 0, metodo se convierte en el método de evento por defecto para todas las áreas 4D Write hasta que la base se cierre. Si un área tiene su propio método de evento instalado, ese método se llama en lugar del método por defecto.
En el parámetro evento, pase un valor que indique el evento a interceptar. Puede utilizar una de las siguientes constantes predefinidas, del tema WR Eventos:
Constante |
Tipo |
Valor |
wr on key |
Entero largo |
0 |
wr on double click |
Entero largo |
1 |
wr on single click |
Entero largo |
2 |
wr on triple click |
Entero largo |
3 |
wr on right click |
Entero largo |
4 |
wr on activate |
Entero largo |
5 |
wr on printing |
Entero largo |
7 |
wr on ruler |
Entero largo |
8 |
wr on compute references |
Entero largo |
9 |
wr on close |
Entero largo |
10 |
wr on drag |
Entero largo |
11 |
wr on drop |
Entero largo |
12 |
wr on timer |
Entero largo |
13 |
Para activar metodo para todos los eventos, pase -1 en evento.
Cuando se llama, metodo recibe siete parámetros que describen el estado de area en el momento del evento. Usted debe explícitamente declarar estos parámetros utilizando las directivas del compilador. En la tabla siguiente se describen los parámetros recibidos por metodo:
Parámetro | Tipo | Descripción |
$1 | Entero largo | área 4D Write4 |
$2 | Entero | Tecla mayús |
$3 | Entero | Alt (Windows), Opción (Mac OS) |
$4 | Entero | Ctrl (Windows), Comando (Mac OS) |
$5 | Entero | Tipo de evento |
$6 | Entero | Su valor varia en función del parámetro evento |
$0 | Entero largo | Si metodo devuelve un valor |
$1 devuelve el entero largo que es el identificador del área donde ocurrió el evento. $2, $3 y $4 describen si una tecla modificadora específica estaba oprimida al momento del evento. Si el valor es igual a 0, la tecla no se ha presionado. Si el valor es igual a 1, la tecla se presionó. $5 devuelve el tipo de evento. $6 varía según el tipo de evento.
Variables método y el parámetro evento ($6)
- Si evento es igual a 0, $6 devuelve el código de la tecla que llama al evento.
- Si evento es igual a 1 o 2, $6 indica si el clic o doble clic se produjo en una referencia. Si $6 es igual a 0, no se seleccionó una referencia. Si $6 es igual a 1, la referencia fue seleccionada.
Nota: metodo puede llamarse antes de la gestión del clic si realiza una de las siguientes acciones:
- Clic o doble clic en una referencia (enlace hipertexto, expresión 4D o HTML)
- Clic derecho (en Windows) o Control-clic (en Mac OS). En Mac OS, al presionar la tecla Control mientras hace clic por lo general muestra un menú emergente.
En Windows, clic derecho por lo general muestra un menú desplegable. Ambos menús muestran la lista de los campos de la base. Para una mejor compatibilidad, se recomienda utilizar el evento 4 (wr on right click).
- Si evento es igual a 3, $6 se refiere a la selección de párrafo. Un triple clic puede efectuarse en una referencia a menos que un método de evento se haya instalado para el doble clic y haya sido interceptado por $0:=1. En este caso, $6 no es significativa.
- Si evento es igual a 4, $6 indica el tipo de menú contextual a punto de mostrarse (en función con la ubicación del clic):
- Si $6 es igual a 1, se muestra un menú de tipo 1 (clic en el encabezado/pie de página).
- Si $6 es igual a 2, se muestra un menú de tipo 2 (clic en el texto del área cuerpo).
- Si $6 es igual a 3, se muestra un menú de tipo 3 (clic en una imagen del área cuerpo).
- Si evento es igual a 5, $6 escribe si el área está activada. Si $6 es igual a 0, el área 4D Write está desactivada. Si $6 es igual a 1, el área 4D Write está activada.
- Si evento es igual a 7 y el trabajo de impresión es una combinación de correspondencia, $6 indica el número de la tabla utilizada. Si el trabajo de impresión no es una combinación de correspondencia, $6 es igual a 0.
- Si evento es igual a 8 (se produce una acción en la regla), $6 no devuelve un valor significativo. Inicialice $0 en 1 si desea evitar cualquier acción en la regla.
- Si evento es igual a 9, $6 indica donde las márgenes se han restablecido en el documento. Si $6 es igual a 0, las márgenes se han restablecido en el cuerpo. Si $6 es igual a 1, las márgenes se han restablecido en el encabezado. Si $6 es igual a dos, los márgenes se han restablecido en el pie de página.
- Si evento es igual a 13, el metodo se llama automáticamente cada X tics (un tic = 1/60 de un segundo), independientemente de las acciones del usuario. El temporizador se puede utilizar más particularmente para implementar un mecanismo de backup automático para los documentos que se están editando. Por defecto, el contador genera un evento cada 3600 tics (60 segundos). Puede modificar esta frecuencia utilizando el comando WR SET AREA PROPERTY. Tenga cuidado, metodo no debe tener una gran cantidad de procesos ya que su ejecución repetida puede ralentizar la aplicación.
Para filtrar eventos, debe utilizar
metodo como una función que devuelve 0 o 1. Esto le permite especificar los caracteres en el documento que 4D Write ignorará.
Inicialice $0 en 1 para hacer que el método tenga en cuenta un evento en particular. Inicialice $0 en 0 si no quiere tener en cuenta un evento en particular. Por ejemplo, si no desea que el carácter "@" aparezca en su documento, filtre todos los caracteres que aparecen en el documento. Si la variable $6 es igual al código del carácter "@", inicializamos $0 en 1 y lo ignoramos.
Nota: si filtra todos los caracteres, las operaciones pueden ralentizarse considerablemente puesto que el método se llamará cada vez que se presione una tecla.
En los ejemplos siguientes, algunas acciones se ejecutan en función del tipo de evento: