Inspetor de Objetos
O Inspetor de Objetos e um editor de propriedades e eventos similar ao Delphi e C++Builder. Ele permite configurar visualmente propriedades de controles e atribuir manipuladores de eventos sem escrever codigo manualmente.
Visao Geral
O Inspetor de Objetos possui duas abas principais:
- Propriedades — Edita propriedades do controle em uma grade categorizada
- Eventos — Atribui manipuladores de eventos aos controles
No topo, um ComboBox Seletor de Controles permite alternar entre todos os controles no formulario atual.
Selecione qualquer controle no Designer de Formularios para ver suas propriedades no Inspetor de Objetos. As alteracoes sao instantaneamente refletidas no designer e no codigo.
Aba Propriedades
Grade Categorizada
As propriedades sao organizadas em categorias para facilitar a navegacao:
| Categoria | Propriedades |
|---|---|
| Aparencia | cPrompt, cValue, nWidth, nHeight, nClrPane, nClrText, oFont, cPicture |
| Posicao | nLeft, nTop, nWidth, nHeight |
| Comportamento | lVisible, lEnabled, lTabStop, lReadOnly |
| Dados | cDataSource, cDataField, nDataType |
| Fonte | cFontName, nFontSize, lFontBold, lFontItalic |
Editores de Propriedades
Diferentes tipos de propriedade usam editores diferentes:
| Tipo de Propriedade | Editor | Exemplo |
|---|---|---|
| String | Entrada de texto | Nome do controle, texto de legenda |
| Numero | Entrada numerica | Valores de posicao, tamanho |
| Logico | Dropdown (.T./.F.) | Visivel, Habilitado |
| Cor | Seletor de cores | Cor de fundo, cor do texto |
| Fonte | Seletor de fontes | Nome da fonte, tamanho, estilo |
| Enum | Lista suspensa | BorderStyle, Position, WindowState |
Editores Dropdown para Enumeracoes
Propriedades com valores predefinidos mostram listas suspensas:
| Propriedade | Valores |
|---|---|
nBorderStyle | 0=bsSizeable, 1=bsSingle, 2=bsNone, 3=bsToolWindow |
nPosition | 0=poDesigned, 1=poCenter, 2=poCenterScreen |
nWindowState | 0=wsNormal, 1=wsMinimized, 2=wsMaximized |
nFormStyle | 0=fsNormal, 1=fsStayOnTop |
nCursor | 0=crDefault, 1=crArrow, 2=crIBeam, 3=crHand, etc. |
Aba Eventos
A aba Eventos mostra todos os eventos disponiveis para o tipo de controle selecionado. A lista de eventos e dinamica
e recuperada via UI_GETALLEVENTS do backend.
Atribuindo Manipuladores de Eventos
- Duplo clique em um evento para gerar automaticamente um manipulador
- Digite diretamente no campo do evento para atribuir um code block
- Selecione entre metodos existentes via dropdown
// Duplo clique em OnClick gera: oBtn:OnClick := { || Button1Click() } METHOD Button1Click() CLASS TForm1 MsgInfo( "Botao clicado!" ) return nil
Eventos Comuns
| Evento | Quando Ocorre | Disponivel Para |
|---|---|---|
OnClick | Usuario clica no controle | Button, CheckBox, RadioButton, ListBox, etc. |
OnChange | Valor do controle e alterado | Edit, Memo, ComboBox, CheckBox, etc. |
OnInit | Controle e criado e inicializado | Todos os controles |
OnClose | Formulario esta prestes a fechar | Apenas Form |
OnTimer | Intervalo do timer expirou | Apenas Timer |
OnKeyDown | Tecla e pressionada | Todos os controles de entrada |
OnKeyUp | Tecla e solta | Todos os controles de entrada |
OnKeyPress | Tecla de caractere pressionada | Todos os controles de entrada |
OnMouseDown | Botao do mouse pressionado | Todos os controles |
OnMouseUp | Botao do mouse solta | Todos os controles |
OnMouseMove | Mouse se move sobre o controle | Todos os controles |
OnMouseWheel | Roda do mouse girada | Todos os controles |
OnDblClick | Usuario da duplo clique | Todos os controles |
OnCreate | Formulario esta sendo criado | Apenas Form |
OnDestroy | Formulario esta sendo destruido | Apenas Form |
OnShow | Formulario e exibido | Apenas Form |
OnHide | Formulario e ocultado | Apenas Form |
OnActivate | Formulario recebe foco | Apenas Form |
OnResize | Formulario e redimensionado | Apenas Form |
OnPaint | Formulario precisa ser redesenhado | Apenas Form |
Tipos de Propriedade (Backend C++)
No backend C++, as propriedades sao definidas com tipos:
| Constante | Valor | Uso |
|---|---|---|
PT_STRING | 1 | Propriedades de texto (nome, legenda, valor) |
PT_NUMBER | 2 | Propriedades numericas (posicao, tamanho, intervalos) |
PT_LOGICAL | 3 | Propriedades booleanas (visivel, habilitado, marcado) |
PT_COLOR | 4 | Propriedades de cor (fundo, cor do texto) |
PT_FONT | 5 | Propriedades de fonte (nome, tamanho, estilo) |
Exemplos de Codigo
Definindo Propriedades via Inspetor de Objetos
Quando voce edita propriedades no inspetor, o codigo gerado fica assim:
METHOD CreateForm() CLASS TForm1 ::cTitle := "Minha Aplicacao" ::nLeft := 100 ::nTop := 170 ::nWidth := 640 ::nHeight := 480 ::nPosition := 2 // poCenterScreen ::nWindowState := 0 // wsNormal return nil
Atribuicao de Eventos em Codigo
// Code block inline oBtn:OnClick := { || MsgInfo( "Ola!" ) } // Chamada de metodo oBtn:OnClick := { || ::HandleButtonClick() } METHOD HandleButtonClick() CLASS TForm1 MsgInfo( "Botao foi clicado" ) return nil
Dicas para Usar o Inspetor de Objetos
- Use categorias — Expanda categorias para encontrar propriedades rapidamente
- Duplo clique em eventos — Gera automaticamente metodos manipuladores na sua classe
- Use dropdowns para enums — Garante valores validos (BorderStyle, Position, etc.)
- Seletor de cores — Clique em propriedades de cor para abrir o seletor
- Seletor de controles — Use o ComboBox no topo para alternar entre controles
- Atualizacoes em tempo real — Alteracoes sao refletidas instantaneamente no designer e codigo
- Restaurar padrao — Clique direito em uma propriedade para restaurar o valor padrao