4D Write v16

WR ON EVENT

Inicio

 
4D Write v16
WR ON EVENT

WR ON EVENT 


 

WR ON EVENT ( area ; evento ; metodo ) 
Parámetro Tipo   Descripción
area  Entero largo in Área 4D Write
evento  Entero largo in Código del evento
metodo  Cadena in Nombre del método a ejecutar

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ámetroTipoDescripción
$1Entero largoárea 4D Write4
$2EnteroTecla mayús
$3EnteroAlt (Windows), Opción (Mac OS)
$4EnteroCtrl (Windows), Comando (Mac OS)
$5EnteroTipo de evento
$6EnteroSu valor varia en función del parámetro evento
$0Entero largoSi 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.

Ejemplo  

En los ejemplos siguientes, algunas acciones se ejecutan en función del tipo de evento:

  `Método formulario:
 If(Form event=On Load)
    WR ON EVENT(Area;wr on key;"ProcName")
  `Llamada a todas las teclas
    WR ON EVENT(Area;wr on activate;"ProcName")
  `Verificación del estado del área
    DISABLE MENU ITEM(2;1)
  `Desactivación del comando de menú "Cambiar fuentes"
    WR SET AREA PROPERTY(Area;wr timer frequency;54000)
  `Evento contador cada 15 min
    WR ON EVENT(Area;wr on timer;"ProcName")
  `Activación auto guardar
 End if
 
  `Método ProcName:
 Case of
    :($5=wr on key)
  `Intercepción de teclas
       If($6=199)|($6=200)
  `Correspondencia de los códigos ASCII
          BEEP
          $0:=1
       Else
  `Dejar el evento a 4D Write
          $0:=0
       End if
    :($5=wr on activate)
  `Interceptar cambio en el estado del área
       If($6=0)
  `Si el área está inactiva
          DISABLE MENU ITEM(2;1)
       Else
          ENABLE MENU ITEM(2;1)
       End if
    :($5=wr on timer)
  `Cada 15 min
       $DocName:="C:\\Temp\\Docs\\TheArea.4W7"
       WR SAVE DOCUMENT(TheArea;$DocName;"4WR7")
 End case



Ver también 

WR Get on event method
WR ON ERROR

 
PROPIEDADES 

Producto: 4D Write
Tema: WR Utilitarios
Número 89174

 
HISTORIA 

Modificado: 4D Write 2004.1

 
ARTICLE USAGE

4D Write - Lenguaje ( 4D Write v16)