4D View v16

PV ON EVENT

Página Inicial

 
4D View v16
PV ON EVENT

PV ON EVENT 


 

PV ON EVENT ( area ; evento ; metodo ) 
Parâmetro Tipo   Descrição
area  Inteiro longo in Área 4D View
evento  Inteiro longo in Evento 4D View
metodo  String in Nome do método

O comando PV ON EVENT se utiliza para associar um metodo a um evento 4D View. Cada vez que ocorre o evento, se executa o metodo.

As constantes PV Eventos se utilizam para definir o parâmetro evento.

O método chamado recebe 6 parâmetros de tipo Inteiro longo e devolve um Booleano em $0:

$1: Referencia da área 4D View
$2: Evento
$3: Código de tecla de modificação
$4: Número da coluna
$5: Número da linha
$6: Código Ascii da tecla (se o evento é um clique, um clique direito ou um duplo clique, $6 vale 0)

O parâmetro $3 pode conter um dos seguintes valores (estes valores se agregam em caso de combinação de teclas):

0Nenhum
512 Tecla Maiús
2048Tecla Alt
4096Tecla Ctrl (Windows)/Comando (Mac OS).
  • Gestão de cliques (eventos pv on clicked, pv on right clicked, pv on double clicked e pv on contextual click):
    - Se o evento (clique, clique direito, duplo clique ou clique contextual) sucede em uma célula, $4 devolve o número da coluna e $5 devolve o número da linha. Se isto passe em um cabeçalho de linha, $4 vale 0. Se passar em um cabeçalho de coluna, $5 vale 0. Se passar em uma esquina superior esquerda da área, $4 e $5 tomam o valor 0.
    - O evento pv on contextual click se chama quando o usuário libera o botão do mouse; o evento pv on right clicked se chama quando se pressiona o botão. Estes dois eventos podem ser  utilizados para colocar uma interface utilizando menus pop up contextuais. O evento pv on contextual click corresponde mais com o funcionamento de Windows e o evento pv on right clicked ao de Mac OS. Os dois eventos podem ser utilizados simultaneamente.
    - Se o evento é um clique, clique direito, duplo clique ou clique contextual, $6 toma o valor 0.
  • Gestão de seleção (evento pv on selection changed):
    - Se a nova seleção inclui várias células, colunas ou linhas, $4 e $5 devolvem 0.
    - Se a nova seleção inclui uma só célula, $4 e $5 devolvem a coluna e da linha da célula, respectivamente.
    - Se a nova seleção é uma coluna, $4 devolve o número da coluna e $5 devolve 0.
    - Se a nova seleção é uma linha, $4 devolve 0 e $5 devolve o número da linha.
  • Teclas de função: No contexto de um evento pv on keyboard, se uma tecla de função foi ativado, o parâmetro $6 devolve 0. Neste caso, utilize a variável sistema Keycode de 4D para conhecer o código ASCII da tecla de função ativada.
  • Ordenar: O evento pv on column sort é gerado justo depois da ordenação de uma coluna. Permitindo assim controlar as ações do usuário. Neste caso, $6 recebe um valor indicando o critério de ordenação. Este valor pode ser comparado com as seguintes constantes, localizadas no tema :
    Constante Tipo Valor
    pv ascending sort Inteiro longo 2
    pv descending sort Inteiro longo 3
  • Redimensionamento: Os eventos pv on column resize e pv on row resize se enviam quando uma coluna ou linha é redimensionada pelo usuário. Não se enviam se as colunas ou linhas são redimensionadas por programação (utilizando os comandos PV SET COLUMNS WIDTH ou PV SET ROWS HEIGHT).

Se $0 é True, o evento não será tomado em conta.
Se $0 é False, o evento será tomado em conta.

Nota: Se vai compilar a base, deve declarar os parâmetros $0 como Booleano e $1 a $6 como Inteiro longo ainda que alguns deles não se utilizem.

Se area é igual a 0, o comando PV ON EVENT se aplica a todas as novas areas 4D View. Neste caso, é melhor passar este comando no Método base On Startup, que se executa quando a base se abre.

Para desinstalar o método de chamada do evento, simplesmente chame ao comando PV ON EVENT com uma cadeia vazia no último parâmetro.

O usuário faz clique no cabeçalho de coluna para fazer uma ordem. O método PM_Event se utiliza para determinar que coluna foi ordenada e em que ordem.

  //Installation of the method that will be called during the pv on column sort event:
 PV ON EVENT(area;pv on column sort;"PM_Event")
 
  //PM_Event method
 C_BOOLEAN($0)
 C_LONGINT($1;$2;$3;$4;$5;$6)
 C_TEXT($SortOrder)
 If($2=pv on column sort)
    Case of
       :($6=pv ascending sort)
          $SortOrder:="ascending"
       :($6=pv descending sort)
          $SortOrder:="descending"
    End case
    ALERT("The sort was carried out on the column "+String($4)+" in "+$SortOrder)
 End if

Um duplo clique em um cabeçalho de coluna provoca o redimensionamento da coluna. No entanto, um dobre clique gera uma sequência de dois eventos: pv on clicked e pv on double clicked.
Como resultado, se a ordem foi permitida por uma chamada a
PV SET AREA PROPERTY, um dobre clique em um cabeçalho primeiro causa a ordem da coluna, logo seu redimensionamento. Se deseja que um dobre clique provoque unicamente o redimensionamento da coluna, deve interceptar e eliminar o evento pv on clicked, que é gerado justo antes de que a ordenam seja levada a cabo. Para isso, basta com instalar um método que será chamado durante o evento pv on clicked:

  `Instalação do método que será chamado durante o evento pv on clicked
 PV ON EVENT(area;pv on clicked;"PM_Event")
 
  `Método PM_Event
 C_BOOLEAN($0)
 C_LONGINT($1;$2;$3;$4;$5;$6)
 If($2=pv on clicked)
    $0:=True `O evento se ignora e a ordem não se realiza
 End if



Ver também 

PV Get on event method

 
PROPRIEDADES 

Produto: 4D View
Tema: PV Área
Número 15994

 
HISTÓRIA 

Modificado: 4D View 2004.1

 
ARTICLE USAGE

4D View Linguagem ( 4D View v16)