| 4D Write v15WR ON EVENT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D Write v15
 WR ON EVENT 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| WR ON EVENT ( area ; evento ; metodo ) | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| area | Inteiro longo |   | Área 4D Write | |||||
| evento | Inteiro longo |   | Código do evento | |||||
| metodo | String |   | Nome do método a executar | |||||
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 | 
| 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)
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:
  `Método formulário:
 If(Form event=On Load)
    WR ON EVENT(Area;wr on key;"ProcName")
  `Chamada a todas as teclas
    WR ON EVENT(Area;wr on activate;"ProcName")
  `Verificação do estado da área
    DISABLE MENU ITEM(2;1)
  `Desativação do comando de menu "Mudar fontes"
    WR SET AREA PROPERTY(Area;wr timer frequency;54000)
  `Evento contador cada 15 min
    WR ON EVENT(Area;wr on timer;"ProcName")
  `Ativação auto guardar
 End if
 
  `Método ProcName:
 Case of
    :($5=wr on key)
  `Interceptação de teclas
       If($6=199)|($6=200)
  `Correspondência dos códigos ASCII
          BEEP
          $0:=1
       Else
  `Deixar o evento a 4D Write
          $0:=0
       End if
    :($5=wr on activate)
  `Interceptar mudança no estado da área
       If($6=0)
  `Se a área está inativa
          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
	Produto: 4D Write
	Tema: WR Utilitários
	Número 
        89174
        
        
        
	
	Modificado: 4D Write 2004.1
	
	
	
	
	
	
	
	
	4D Write - Linguagem ( 4D Write v15)
	
	
	
	
	
	
	
 Adicionar um comentário
Adicionar um comentário