Características de todas as tags visuais

.html ›› .html ›› .html ››
Parent Previous Next

Características de todas as tags visuais

O SDK3 utiliza o conceito de orientação a objetos nos componentes visuais e todos os componentes visuais são objetos do tipo “controle” (herança, em orientação a objetos).

Isto significa que todos os componentes e tags visuais de arquivo LFM (edit, label, button, layout, etc..) possuem as características, propriedades e métodos descritos nesta seção.

Propriedades e atributos de todas as tags visuais

Propriedade

Tipo

Valor Padrão

Descrição

visible

Boolean

true

Define se o controle está visível ou invisível. 


Um controle pode existir invisível e ser exibido quando alguma condição ou ocasião acontecer.


enabled

Boolean

true

Define se o controle está ativo ou não. 


Um controle inativo é exibido na interface, mas não é possível interagir com ele, como se tivesse bloqueado.


name

String

<string vazio>

Define um nome para o controle.


O nome deve ser único, isto é, dentro de um form, não é possível existir 2 controles com o mesmo nome. Se não for definido um nome para o controle no arquivo LFM, um nome único será gerado para ele em tempo de compilação. Nomear controles é especialmente útil quando se quer trabalhar com códigos LUA.


align

Enumerado:

  • “none”
  • “top”
  • “left”
  • “bottom”
  • “right”
  • “client”

“none”

Define o alinhamento visual do controle na interface.


Com esta propriedade é possível definir um comportamento padrão de posicionamento e tamanho para os controles.


none – O controle não sofrerá nenhum tipo de posicionamento e redimensionamento automático.


top – O controle será posicionado no topo de seu pai e a largura será calculada para preencher o espaço. Os valores de left, top e width são calculados automaticamente, mas é possível definir a altura (height).


left – O controle será posicionado à esquerda de seu pai e a altura será calculada para preencher o espaço. Os valores de “left”, “top” e “height” são calculados automaticamente, mas é possível definir a largura (width).


bottom -  O controle será posicionado no rodapé de seu pai e a largura é calculada para preencher o espaço. Os valores de left, top e width são calculados automaticamente, mas é possível definir a altura (height).


right – O controle será posicionado à direita de seu pai e a altura será calculada para preencher o espaço. Os valores de “left”, “top” e “height” são calculados automaticamente, mas é possível definir a largura (width).


client – O controle será posicionado de forma que ocupe toda a área de seu pai. Os valores de left, top, width e height são automaticamente calculados.


left

Float

0.0

Define a posição X do controle.

A posição é relativa a seu pai.


Veja Posição e Tamanho dos Controles.


top

Float

0.0

Define a posição Y do controle.

A posição é relativa a seu pai.


Veja Posição e Tamanho dos Controles.


width

Float

Depende do controle

Define a largura do controle.


Veja Posição e Tamanho dos Controles.


height

Float

Depende do controle

Define a altura do controle.


Veja Posição e Tamanho dos Controles.


margins

Bounds (Objeto Lua)

{}

Define o tamanho das margens do controle, isto é, o tamanho da “borda invisível” que existe ao redor do controle que o separa do outros.


Especialmente útil quando se usa a propriedade “align”.


O valor desta propriedade é uma tabela lua com os campos “left”, “right”, “top” e “bottom”, onde a omissão de algum campo representa o valor 0.0. Exemplos de valores:

  • {}  - left, right, top e bottom 0.0
  • {left = 5} - left 5, demais valores 0
  • {left = 5, top = 5} – left 5, top 5, right 0, bottom 0
  • {left = 5, right = 5, top = 5, bottom = 5} – todos os valores 5

padding

Bounds (Objeto Lua)

{}

Define o tamanho do preenchimento do controle, isto é, o tamanho da “borda invisível” que existe no interior do controle entre sua periferia e seu conteúdo.


O valor desta propriedade é uma tabela lua com os campos “left”, “right”, “top” e “bottom”, onde a omissão de algum campo representa o valor 0.0.


anchors

Conjunto de:

  • left
  • top
  • right
  • bottom

“left top”

Define como o controle é ancorado em seu pai.


Quando o pai do controle é redimensionado, o controle mantém sua posição relativa baseado em sua âncora.


Exemplos:

  • “left” presente, ”right” ausente: O controle manterá sempre a mesma posição X.
  • “left” ausente, “right” presente: A posição X será calculada automaticamente para manter sempre a mesma distância entre sua borda direita e a borda direita de seu pai.
  • “left” e “right” presentes: O controle manterá tanto a distância entre (1) sua borda esquerda com a borda esquerda de seu pai; (2) como sua borda direita com a borda direita de se pai. Para isso, a largura do componente será alterada conforme o pai é redimensionado.
  • “left” e “right” ausentes: O controle não está ancorado e ocorrerá um efeito similar ao de centralização.


O comportamento das âncoras “top” e “bottom” é o mesmo das âncoras “left” e “right”, porém agora no eixo Y.


hitTest

Boolean

Depende do controle

Define se o clique e movimento do mouse e o touch são capturados por este controle.


cursor

Enumerado:

  • "default"
  • "arrow"
  • "handPoint"
  • "hourGlass"
  • "IBeam"
  • "size"
  • "sizeNESW"
  • "sizeNS"
  • "sizeNWSE"
  • "sizeWE"
  • "upArrow"
  • "drag"
  • "noDrop"
  • "hSplit"
  • "vSplit"
  • "multiDrag"
  • "sqlWait"
  • "no"
  • "appStart"
  • "help"
  • "cross"

"default"

Define qual cursor de mouse deve ser apresentado quando o mouse estiver em em cima do controle. OBS: hitTest deve ser "true" para esta propriedade ter efeito.


  • "default" - Cursor padrão, uma seta padrão.
  • "arrow" - Uma seta padrão.
  • "handPoint" - Uma mão com um dedo apontando para cima. Normalmente é usado para identificar um item selecionável/clicável
  • "hourGlass" - Uma ampulheta para indicar um processo em andamento.
  • "IBeam" - Cursor que sinaliza a possibilidade de entrar com texto no controle.
  • "size" - Indicação de possibilidade de redimensionamento.
  • "sizeNESW" - Indicação de possibilidade de redimensionamento no sentido Nordeste-Sudoeste
  • "sizeNS" - Indicação de possibilidade de redimensionamento no sentido Norte-Sul
  • "sizeNWSE" - Indicação de possibilidade de redimensionamento no sentido Noroeste-Sudeste
  • "sizeWE" - Indicação de possibilidade de redimensionamento no sentido Leste-Oeste
  • "upArrow" - Uma seta apontando para cima.
  • "drag" - Um cursor indicando que itens estão sendo arrastados.
  • "noDrop" - Indicação de que não é possível arrastar para este alvo.
  • "hSplit" -  Indicação de splitter horizontal
  • "vSplit" - Indicação de splitter vertical.
  • "multiDrag" - Indicação de que vários itens estão sendo arrastados.
  • "sqlWait" - Ampulheta indicando um processo de banco de dados em andamento.
  • "no" - Uma indicação de negação, de que não é possível fazer algo.
  • "appStart" - Combinação de "default" e "hourGlass", normalmente usado para indicar que um aplicativo está sendo aberto.
  • "help" - Uma seta com um ponto de interrogação.
  • "cross" - Um cursor em formato de cruz, usado para indicar um posicionamento preciso.


hint

String

""

Define um texto de ajuda que é exibido quando o usuário deixar o mouse por um certo tempo em cima do controle. Esta propriedade só tem efeito se o atributo "hitTest" do controle for true.


canFocus

Boolean

Depende do controle

Define se o controle pode receber o foco do teclado.


tabOrder

Integer

<automático>

Define um número que representa a ordem de tabulação do controle, isto é, quando o usuário apertar TAB no teclado para pular para o próximo controle de edição.

opacity

Float

1.0

Define a transparência do controle.


É um número real que varia de 0.0 a 1.0, onde:

  • 0.0 – totalmente transparente
  • 0.25
  • 0.5 – parcialmente transparente
  • 0.75
  • 1.0 – totalmente opaco.

rotationAngle

Float

0.0

Define o ângulo de rotação do controle. 

O ângulo é medido em graus.


rotationCenterX

Float

<centro X do controle>

Define o valor X da coordenada (X, Y) do pivô de rotação do controle. Usado em conjunto com “rotationAngle”


rotationCenterY

Float

<centro Y do controle>

Define o valor Y da coordenada (X, Y) do pivô de rotação do controle. Usado em conjunto com “rotationAngle”


scaleX

Float

1.0

Define o fator de escala que deve ser aplicado à largura do controle.


scaleY

Float

1.0

Define o fator de escala que deve ser aplicado à altura do controle.


scale

Float

1.0

Define o fator de escala que deve ser aplicado à largura e altura do controle.


parent

Um objeto

nil

Define ou retorna o objeto parent deste controle. 


Não há necessidade de utilizar este atributo em tags de arquivos ".lfm", pois o parent de cada tag já é setada automaticamente conforme seu aninhamento.



Veja também:


       

Métodos de todas as tags visuais

É possível invocar métodos dos controles usando código LUA.

Método

Descrição

controle:destroy();

Destrói o controle, liberando a memória usada por ele.

Após a chamada “destroy”, não é mais possível utilizar o controle.


Normalmente você não precisa se preocupar em destruir os controles, pois isto é feito automaticamente.



controle:setFocus();

Coloca o foco do teclado neste controle.


controle:beginUpdate();

Coloca o controle num estado de “em alteração”. Neste estado, as alterações feitas nas propriedades não serão apresentadas na interface.


É útil quando se pretende alterar várias propriedades ou várias vezes, pois o processo fica mais rápido, já que as mudanças não serão apresentadas na tela de imediato.


Para cada chamada de “beginUpdate”, deve haver uma chamada de “endUpdate”.


controle:endUpdate();

Tira o controle do estado “em alteração”, voltando a seu comportamento normal.


Para cada chamada de “beginUpdate”, deve haver uma chamada de “endUpdate”.


controle:needRepaint();

Sinaliza o SDK3 que o controle precisa ser redesenhado na tela. 


Normalmente você não precisa se preocupar em chamar este método!


controle:getChildren();

Retorna um array (tabela lua com chaves de 1 a QUANTIDADE) contendo os controles que são filhos destes controles.


Exemplo:

local filhos = self.panel1:getChildren();
local i;

for i = 1, #filhos, 1 do
  filhos[i]:algumaCoisa();
end;

controle:getParent();


Retorna o controle pai deste controle ou nil se não houver.


controle:setParent(parent);

Define o controle pai deste controle.


Parâmetros:

  • parent – O objeto controle que será pai deste controle ou nil.


controle:isChildFocused();

Retorna um boolean (true ou false) indicando se este controle ou algum dos controles filhos está com o foco do teclado.


controle:isFocused();

Retorna um boolean (true ou false) indicando se este controle está com o foco do teclado.


controle:isMouseOver();

Retorna um boolean (true ou false) indicando se o mouse está por cima do controle (não necessariamenteclicado).


controle:isVisible();

Retorna um boolean (true ou false) indicando se o controle está visível.


controle:findControlByName(

controlName);

Procura outro controle através do nome passado pelo parâmetro “controlName” em toda a hierarquia de controles onde este está.


Retorna o controle ou nil caso não encontre.


controle:getClassName();

Retorna o nome da classe/tipo da tag deste controle.
Exemplos: "edit", "label", "layout", etc..


Eventos de todas as tags visuais

Nome do evento

Descrição

onClick

Este evento é invocado quando ocorre um click com o botão esquerdo do mouse no controle, ou quando ocorre um “tap touch” no controle.


Parâmetros:

  • event - uma tabela Lua que contém os seguintes atributos:
    • x – posição X (relativa a este controle) indicando onde o click ocorreu.
    • y – posição Y (relativa a este controle) indicando onde o click ocorreu.
    • shiftKey - true se a tecla shift estiver pressionada
    • ctrlKey - true se a tecla control estiver pressionada
    • altKey - true se a tecla alt estiver pressionada
    • cmdKey - true se a tecla command (macOS) estiver pressionada
    • ctrlOrCmdKey - No macOS: true se a tecla command estiver pressionada. Outros dispositivos: true se a tecla control estiver pressionada.
    • isTouch - true se este evento foi disparado por causa de um toque em um display touchscreen.


onDblClick

Este evento é invocado quando ocorre um clique duplo com o mouse no controle.


Parâmetros:

  • event - uma tabela Lua que contém os seguintes atributos:
    • x – posição X (relativa a este controle) indicando onde o click duplo ocorreu.
    • y – posição Y (relativa a este controle) indicando onde o click duplo ocorreu.
    • shiftKey - true se a tecla shift estiver pressionada
    • ctrlKey - true se a tecla control estiver pressionada
    • altKey - true se a tecla alt estiver pressionada
    • cmdKey - true se a tecla command (macOS) estiver pressionada
    • ctrlOrCmdKey - No macOS: true se a tecla command estiver pressionada. Outros dispositivos: true se a tecla control estiver pressionada.
    • isTouch - true se este evento foi disparado por causa de um toque em um display touchscreen.


onMouseDown

Este evento é invocado quando um botão do mouse é pressionado sobre o controle ou quando o dedo toca a tela (touchscreen).


Parâmetros:

  • event - uma tabela Lua que contém os seguintes atributos:
    • button – indica qual botão do mouse foi pressionado, e pode conter um dos seguintes valores: “left”, “middle” ou “right”... Quando o dedo é pressionado (touchscreen), este valor é “left”.
    • x – posição X (relativa a este controle) indicando onde o mouse foi pressionado.
    • y – posição Y (relativa a este controle) indicando onde o mouse foi pressionado.
    • shiftKey - true se a tecla shift estiver pressionada também
    • ctrlKey - true se a tecla control estiver pressionada também
    • altKey - true se a tecla alt estiver pressionada também.
    • cmdKey - true se a tecla command (macOS) estiver pressionada também.
    • ctrlOrCmdKey - No macOS: true se a tecla command estiver pressionada. Outros dispositivos: true se a tecla control estiver pressionada.
    • isTouch - true se este evento foi disparado por causa de um toque em um display touchscreen.


Observações:

    • Este evento só é disparado se a propriedade hitTest do controle for "true"


onMouseMove

Este evento é invocado quando o mouse se movimenta pelo controle ou quando o dedo (touchscreen) é arrastado.


Parâmetros:

  • event - uma tabela Lua que contém os seguintes atributos:
    • x – posição X (relativa a este controle) indicando para onde o mouse moveu.
    • y – posição Y (relativa a este controle) indicando para onde o mouse moveu.
    • shiftKey - true se a tecla shift estiver pressionada
    • ctrlKey - true se a tecla control estiver pressionada
    • altKey - true se a tecla alt estiver pressionada
    • cmdKey - true se a tecla command (macOS) estiver pressionada
    • ctrlOrCmdKey - No macOS: true se a tecla command estiver pressionada. Outros dispositivos: true se a tecla control estiver pressionada.
    • isTouch - true se este evento foi disparado por causa de um toque em um display touchscreen.


Observações:

    • Este evento só é disparado se a propriedade hitTest do controle for "true"


onMouseUp

Este evento é invocado quando um botão do mouse é liberado sobre o controle ou quando o dedo solta da tela (touchscreen).


Parâmetros:

  • event - uma tabela Lua que contém os seguintes atributos:
    • button – indica qual botão do mouse foi liberado, e pode conter um dos seguintes valores: “left”, “middle” ou “right”... Quando o dedo é levantado (touchscreen), este valor é “left”.
    • x – posição X (relativa a este controle) indicando onde o mouse foi liberado.
    • y – posição Y (relativa a este controle) indicando onde o mouse foi liberado.
    • shiftKey - true se a tecla shift estiver pressionada
    • ctrlKey - true se a tecla control estiver pressionada
    • altKey - true se a tecla alt estiver pressionada
    • cmdKey - true se a tecla command (macOS) estiver pressionada
    • ctrlOrCmdKey - No macOS: true se a tecla command estiver pressionada. Outros dispositivos: true se a tecla control estiver pressionada.
    • isTouch - true se este evento foi disparado por causa de um toque em um display touchscreen.


Observações:

    • Este evento só é disparado se a propriedade hitTest do controle for "true"


onMouseEnter

Este evento é invocado quando o mouse entra na área do controle.


Observações:

    • Este evento só é disparado se a propriedade hitTest do controle for "true"


onMouseLeave

Este evento é invocado quando o mouse sai da área do controle.


Observações:

    • Este evento só é disparado se a propriedade hitTest do controle for "true"'


onResize

Este evento é invocado quando o controle é redimensionado


onEnter

Este evento é invocado quando o controle recebe o foco do teclado


onExit

Este evento é invocado quando o controle perde o foco do teclado.


onKeyDown

Este evento é invocado quando uma tecla (teclado) é pressionada.


Parâmetros:

  • event - uma tabela Lua que contém os seguintes atributos
    • key - Cadeia de caracteres contendo a letra do teclado que foi pressionada
    • keyCode – Código numérico da tecla que foi pressionada (algumas teclas, como F7, por exemplo, não representam uma letra, daí a necessidade do keyCode)
    • shiftKey - true se a tecla shift estiver pressionada também
    • ctrlKey - true se a tecla control estiver pressionada também
    • altKey - true se a tecla alt estiver pressionada também.
    • cmdKey - true se a tecla command (macOS) estiver pressionada também.
    • ctrlOrCmdKey - No macOS: true se a tecla command estiver pressionada. Outros dispositivos: true se a tecla control estiver pressionada.


Observações:

  • Se você tratou a tecla e nenhum outro componente deveria tentar tratá-la, altere o valor de event.key para "" (string vazia) e event.keyCode para 0.
  • Se você alterar o valor de key e/ou keyCode, a mudança é incorporada. Caso queira suprimir/ignorar a tecla que acabou de ser pressionada, atribua event.key = "" e event.keyCode = 0.
  • Se a combinação de teclas pressionada puder ser um atalho, então event.key virá com valor "" (string vazio) e event.keyCode com valor diferente de 0.
  • Se a combinação de teclas pressionada puder ser tratada como um caractere exibível, event.key vira com uma string contendo apenas este caracter e event.keyCode virá com valor igual a 0. 


onKeyUp

Este evento é invocado quando uma tecla (teclado) é liberada.


Parâmetros:

  • event - uma tabela Lua que contém as mesmas propriedades descritas no evento onKeyDown mas com informações sobre a tecla liberada.


onMenu

Este evento é invocado quando o usuário deseja exibir o Menu do controle. Pode ser que o usuário clicou com botão direito do mouse, pressionou a tecla menu ou segurou por um longo tempo o dedo na tela (LongTouch).


Parâmetros:

    • x - Número contendo onde, em pixels, no eixo X da tela do usuário, o menu deve ser exibido.
    • y - Número contendo onde, em pixels, no eixo Y da tela do usuário, o menu deve ser exibido.
    • event - uma tabela Lua que contém os seguintes atributos:
      • x – Número contendo onde, em pixels, no eixo X da tela do usuário, o menu deve ser exibido.
      • y – Número contendo onde, em pixels, no eixo Y da tela do usuário, o menu deve ser exibido.
      • shiftKey – true se a tecla shift estiver pressionada
      • ctrlKey – true se a tecla control estiver pressionada
      • altKey – true se a tecla alt estiver pressionada
      • cmdKey – true se a tecla command (macOS) estiver pressionada
      • ctrlOrCmdKey - No macOS: true se a tecla command estiver pressionada. Outros dispositivos: true se a tecla control estiver pressionada.


onStartDrag

Evento que é chamado quando o usuário deseja iniciar o processo de arrastar-e-soltar informações partindo  deste controle e você deseja informar quais ações ou dados existem em um determinado ponto do controle.


Parâmetros:

  • drag - Objeto Drag o qual você deve preencher as informações para o RRPG acasalar o drag com o drop.
  • x - posição X (relativa a este controle) indicando onde o drag começou.
  • y - posição Y (relativa a este controle) indicando onde o drag começou.
  • event - uma tabela Lua que contém os seguintes atributos:
    • x – posição X (relativa a este controle) indicando onde o drag começou.
    • y – posição Y (relativa a este controle) indicando onde o drag começou.
    • shiftKey – true se a tecla shift estiver pressionada
    • ctrlKey – true se a tecla control estiver pressionada
    • altKey – true se a tecla alt estiver pressionada
    • cmdKey – true se a tecla command (macOS) estiver pressionada
    • ctrlOrCmdKey - No macOS: true se a tecla command estiver pressionada. Outros dispositivos: true se a tecla control estiver pressionada.


Por favor, consulte Arrastando-e-Soltando Informações / Drag and Drop para conhecer melhor sobre o processo drag and drop.


Observações:

  • hitTest deve ser "true" para este evento poder ser chamado.


onStartDrop

Evento que é chamado quando alguém arrasta uma informação em cima do controle e você deseja informar quais ações ou dados existem em um determinado ponto do controle.


Parâmetros:

  • drop - Objeto Drop o qual você deve preencher as informações para o RRPG acasalar o drag com o drop.
  • x - posição X (relativa a este controle) indicando onde o drop está tentando ser feito.
  • y - posição Y (relativa a este controle) indicando onde o drop está tentando ser feito
  • drag - Objeto Drag representando a informação que está sendo arrastada. Você não deve alterar as propriedades deste objeto.
  • event - uma tabela Lua que contém os seguintes atributos:
    • x – posição X (relativa a este controle) indicando onde o drop está tentando ser feito.
    • y – posição Y (relativa a este controle) indicando onde o drop está tentando ser feito
    • shiftKey – true se a tecla shift estiver pressionada
    • ctrlKey – true se a tecla control estiver pressionada
    • altKey – true se a tecla alt estiver pressionada
    • cmdKey – true se a tecla command (macOS) estiver pressionada
    • ctrlOrCmdKey - No macOS: true se a tecla command estiver pressionada. Outros dispositivos: true se a tecla control estiver pressionada.


Por favor, consulte Arrastando-e-Soltando Informações / Drag and Drop para conhecer melhor sobre o processo drag and drop.


Observações:

  • hitTest deve ser "true" para este evento poder ser chamado.




Veja também:

Created with the Personal Edition of HelpNDoc: Don't be left in the past: convert your WinHelp HLP help files to CHM with HelpNDoc