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.
| 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” | 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: 
 | 
| 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” | 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. 
 
 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. | 
| Enumerado: 
 | "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. 
 | |
| 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: 
 | 
| 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: | 
É 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: 
 | |
| 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. | 
| 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: 
 
 
 | 
| onDblClick | Este evento é invocado quando ocorre um clique duplo com o mouse no controle. Parâmetros: 
 
 
 | 
| onMouseDown | Este evento é invocado quando um botão do mouse é pressionado sobre o controle ou quando o dedo toca a tela (touchscreen). Parâmetros: 
 
 
 Observações: 
 | 
| onMouseMove | Este evento é invocado quando o mouse se movimenta pelo controle ou quando o dedo (touchscreen) é arrastado. Parâmetros: 
 
 
 Observações: 
 | 
| onMouseUp | Este evento é invocado quando um botão do mouse é liberado sobre o controle ou quando o dedo solta da tela (touchscreen). Parâmetros: 
 
 
 Observações: 
 | 
| onMouseEnter | Este evento é invocado quando o mouse entra na área do controle. Observações: 
 | 
| onMouseLeave | Este evento é invocado quando o mouse sai da área do controle. Observações: 
 | 
| 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. | 
| Este evento é invocado quando uma tecla (teclado) é pressionada. Parâmetros: 
 Observações: 
 | |
| Este evento é invocado quando uma tecla (teclado) é liberada. Parâmetros: 
 | |
| 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: 
 | |
| 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: 
 
 Por favor, consulte Arrastando-e-Soltando Informações / Drag and Drop para conhecer melhor sobre o processo drag and drop. Observações: 
 | |
| 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: 
 
 Por favor, consulte Arrastando-e-Soltando Informações / Drag and Drop para conhecer melhor sobre o processo drag and drop. Observações: 
 | 
Created with the Personal Edition of HelpNDoc: Don't be left in the past: convert your WinHelp HLP help files to CHM with HelpNDoc