O comando WR ON EVENT instala metodo como o método a chamar cada vez que evento ocorre em area. Os eventos se passam diretamente a metodo antes de ser tratados por 4D Write.
Se area é igual a 0, metodo se converte no método de evento por padrão para todas as áreas 4D Write até que a base seja fechada. Se uma área tem seu próprio método de evento instalado, esse método é chamado em lugar do método por padrão.
No parâmetro evento, passe um valor que indique o evento a interceptar. Pode utilizar uma das seguintes constantes predefinidas, do tema WR Events:
Constante |
Tipo |
Valor |
wr on key |
Inteiro longo |
0 |
wr on double click |
Inteiro longo |
1 |
wr on single click |
Inteiro longo |
2 |
wr on triple click |
Inteiro longo |
3 |
wr on right click |
Inteiro longo |
4 |
wr on activate |
Inteiro longo |
5 |
wr on printing |
Inteiro longo |
7 |
wr on ruler |
Inteiro longo |
8 |
wr on compute references |
Inteiro longo |
9 |
wr on close |
Inteiro longo |
10 |
wr on drag |
Inteiro longo |
11 |
wr on drop |
Inteiro longo |
12 |
wr on timer |
Inteiro longo |
13 |
Para ativar
metodo para todos os eventos, passe -1 em
evento.
Quando se chama,
metodo recebe sete parâmetros que descrevem o estado de
area no momento do evento. Você deve explicitamente declarar estes parâmetros utilizando as diretivas do compilador. Na seguinte tabela se descrevem os parâmetros recebidos por
metodo:
Parâmetro | Tipo | Descrição |
$1 | Inteiro longo | área 4D Write4 |
$2 | Inteiro | Tecla maiús |
$3 | Inteiro | Alt (Windows), Opção (Mac OS) |
$4 | Inteiro | Ctrl (Windows), Comando (Mac OS) |
$5 | Inteiro | Tipo de evento |
$6 | Inteiro | Seu valor varia em função do parâmetro evento |
$0 | Inteiro longo | Se método devolve um valor |
$1 devolve o inteiro longo que é o identificador da área onde ocorreu o evento. $2, $3 e $4 descrevem se uma tecla modificadora específica estava oprimida ao momento do evento. Se o valor é igual a 0, a tecla não foi pressionada. Se o valor é igual a 1, a tecla foi pressionada. $5 devolve o tipo de evento. $6 varia segundo o tipo de evento.
Variáveis método e o parâmetro evento ($6)
- Se evento é igual a 0, $6 devolve o código da tecla que chama ao evento.
- Se evento é igual a 1 ou 2, $6 indica se o clique ou dobre clique se produziu em uma referência. Se $6 é igual a 0, não foi selecionada uma referência. Se $6 é igual a 1, a referencia foi selecionada.
Nota: metodo pode ser chamado antes da gestão do clique se realiza uma das seguintes ações: - Clique ou dobre clique em uma referência (hyperlink, expressão 4D ou HTML)
- Clique direito (em Windows) ou Controle-clique (em Mac OS). Em Mac OS, ao pressionar a tecla Controle enquanto faz clique geralmente mostra um menu emergente.
Em Windows, clique direito geralmente mostra um menu deslocável. Ambos menus mostram a lista dos campos da base. Para uma melhor compatibilidade, se recomenda utilizar o evento 4 (wr on right click).
- Se evento é igual a 3, $6 se refere a seleção de parágrafo. Um triplo clique pode ser realizado em uma referência a não ser que um método de evento tenha sido instalado para o dobre clique e tenha sido interceptado por $0:=1. Neste caso, $6 não é significativa.
- Se evento é igual a 4, $6 indica o tipo de menu contextual a ponto de ser mostrado (em função com a localização do clique):
- Se $6 é igual a 1, é mostrado um menu de tipo 1 (clique no cabeçalho/rodapé de página).
- Se $6 é igual a 2, é mostrado um menu de tipo 2 (clique no texto da área corpo).
- Se $6 é igual a 3, é mostrado um menu de tipo 3 (clique em uma imagem da área corpo).
- Se evento é igual a 5, $6 escreve se a área está ativada. Se $6 é igual a 0, a área 4D Write está desativada. Se $6 é igual a 1, a área 4D Write está ativada.
- Se evento é igual a 7 e o trabalho de impressão é uma combinação de correspondência, $6 indica o número da tabela utilizada. Se o trabalho de impressão não é uma combinação de correspondência, $6 é igual a 0.
- Se evento é igual a 8 (se produz em uma ação na regra), $6 não devolve um valor significativo. Inicialize $0 em 1 se deseja evitar qualquer ação na regra.
- Se evento é igual a 9, $6 indica onde as margens foram restabelecidas no documento. Se $6 é igual a 0, as margens foram restabelecidas no corpo. Se $6 é igual a 1, as margens foram restabelecidas no cabeçalho. Se $6 é igual a dois, as margens foram restabelecidas no rodapé de página.
- Se evento é igual a 13, o metodo se chama automaticamente cada X tics (um tic = 1/60 de um segundo), independentemente das ações do usuário. O temporizador pode ser utilizado mais particularmente para implementar um mecanismo de backup automático para os documentos que se estão editando. Por padrão, o contador gera um evento cada 3600 tics (60 segundos). Pode modificar esta frequência utilizando o comando WR SET AREA PROPERTY. Tenha cuidado, metodo não deve ter uma grande quantidade de processos já que sua execução repetida pode desacelerar a aplicação.
Para filtrar eventos, deve utilizar metodo como uma função que devolve 0 ou 1. Isto lhe permite especificar os caracteres no documento que 4D Write ignorará.
Inicialize $0 em 1 para fazer que o método tenha em conta um evento em particular. Inicialize $0 em 0 se não quer ter em conta um evento em particular. Por exemplo, se não deseja que o caractere "@" apareça em seu documento, filtre todos os caracteres que aparecem no documento. Se a variável $6 é igual ao código do caractere "@", inicializamos $0 em 1 e o ignoramos.
Nota: Se filtrar todos os caracteres, as operações podem ser desaceleradas consideravelmente uma vez que o método será chamado cada vez que se pressione uma tecla.
Nos exemplos seguintes, algumas ações se executam em função do tipo de evento: