Pular para conteúdo

Características de todas as tags visuais

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: Posição e Tamanho dos Controles 

    

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: 
---
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. 
onDblClick Este evento é invocado quando ocorre um clique duplo com o mouse no controle. 
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.  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 também ctrlKey - true se a tecla control estiver pressionada também altKey - true se a tecla alt estiver pressionada também.  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 também ctrlKey - true se a tecla control estiver pressionada também altKey - true se a tecla alt estiver pressionada também.  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.  Observações: 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, no eixo X da tela do usuário, o menu deve ser exibido. y - Número contendo onde, no eixo Y da tela do usuário, o menu deve ser exibido. 
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 - Numero contendo a posição do eixo X de onde o drop está tentando ser feito. y - Numero contendo a posição do eixo y de onde o drop está tentando ser feito.  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 - Numero contendo a posição do eixo X de onde o drop está tentando ser feito. y - Numero contendo a posição do eixo y de 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.  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:

Tratando eventos do Lua Form


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