Designer Visual de Formularios

O Designer de Formularios e um editor de formularios WYSIWYG (What You See Is What You Get) inspirado no Borland C++Builder. Projete formularios visualmente, arraste controles da paleta de componentes, defina propriedades no Inspetor de Objetos e veja o codigo gerar automaticamente.

Design Bidirecional

Alteracoes no designer atualizam instantaneamente o codigo, e alteracoes no codigo atualizam o designer. Suas implementacoes de METHOD sao sempre preservadas durante a regeneracao do codigo.

Recursos do Designer

Selecao de Controles

Selecao Unica

Clique em qualquer controle no formulario para seleciona-lo. Uma borda azul com 8 alcas de redimensionamento aparece:

Multi-Selecao

Mantenha Shift pressionado e clique para adicionar/remover controles da selecao, ou clique e arraste para criar um retangulo de selecao por elastico. Todos os controles selecionados mostram alcas simultaneamente.

Copiar e Colar Controles

O HarbourBuilder suporta operacoes completas de area de transferencia para controles:

AtalhoAcao
Ctrl+C / Cmd+CCopia os controles selecionados para a area de transferencia
Ctrl+V / Cmd+VCola os controles com deslocamento de +16px
Ctrl+X / Cmd+XRecorta os controles selecionados (copiar + excluir)
DeleteExclui os controles selecionados

Ao colar, os controles sao automaticamente deslocados em 16 pixels para evitar sobreposicao com o original.

O menu Formatar oferece 8 modos de alinhamento e distribuicao:

ComandoDescricao
Alinhar a EsquerdaAlinha todos os controles selecionados a borda esquerda do controle mais a esquerda
Alinhar a DireitaAlinha a borda direita do controle mais a direita
Alinhar ao TopoAlinha ao topo do controle mais alto
Alinhar a BaseAlinha a base do controle mais baixo
Centralizar HorizontalmenteCentraliza todos os controles no eixo horizontal
Centralizar VerticalmenteCentraliza todos os controles no eixo vertical
Espacar HorizontalmenteDistribui os controles com espacamento horizontal igual
Espacar VerticalmenteDistribui os controles com espacamento vertical igual

Geracao de Codigo em Tempo Real

Cada acao no designer gera codigo xBase correspondente. Por exemplo, soltar um botao gera:

@ 120, 140 BUTTON oBtn PROMPT "Button1" ;
   OF oForm SIZE 120, 32

Alterar propriedades no Inspetor de Objetos atualiza o codigo imediatamente. A sincronizacao bidirecional garante que seu design visual e codigo estejam sempre em harmonia.

Modo Design vs Modo Execucao

Formularios possuem uma propriedade FDesignMode que controla o comportamento:

ModoComportamento
Modo Design (FDesignMode = .T.)Controles podem ser selecionados, movidos, redimensionados. Fundo com grade exibido. Geracao de codigo ativa.
Modo Execucao (FDesignMode = .F.)Formulario roda normalmente. Controles respondem a interacao do usuario. Sem geracao de codigo.

Propriedades do Formulario no Designer

PropriedadeTipoDescricao
nWidth, nHeight NumericoDimensoes do formulario em pixels
nLeft, nTop NumericoPosicao na tela
cTitleStringTexto da barra de titulo da janela
nBorderStyle Numerico0=bsSizeable, 1=bsSingle, 2=bsNone, 3=bsToolWindow
nPosition Numerico0=poDesigned, 1=poCenter, 2=poCenterScreen
nWindowState Numerico0=wsNormal, 1=wsMinimized, 2=wsMaximized
nFormStyle Numerico0=fsNormal, 1=fsStayOnTop
lSizableLogicoPermitir que o usuario redimensione a janela
lCenterLogicoCentralizar formulario na tela ao exibir

Exemplos de Codigo

Sintaxe DEFINE FORM Simples

#include "hbbuilder.ch"

function Main()
   local oForm

   DEFINE FORM oForm TITLE "Hello World" ;
      SIZE 400, 300 FONT "Segoe UI", 10

   ACTIVATE FORM oForm CENTERED
return nil

Abordagem Baseada em Classe (Gerado pelo IDE)

CLASS TForm1 FROM TForm

   METHOD CreateForm()

ENDCLASS

METHOD CreateForm() CLASS TForm1
   ::cTitle  := "Form1"
   ::nLeft   := 100
   ::nTop    := 170
   ::nWidth  := 400
   ::nHeight := 300
return nil
Ambas as Abordagens Funcionam

Voce pode usar qualquer abordagem. A sintaxe DEFINE FORM e mais simples para aplicacoes pequenas, enquanto a abordagem baseada em classes e melhor para aplicacoes complexas com multiplos formularios.

Dicas para Design Eficiente de Formularios

  1. Use o Inspetor de Objetos — Defina propriedades visualmente em vez de escrever codigo
  2. Duplo clique em controles — Gera automaticamente manipuladores de eventos (ex: OnClick para botoes)
  3. Multi-selecao para alinhamento — Selecione multiplos controles e use o menu Formatar
  4. Copiar/Colar para controles similares — Projete um botao, cole e modifique para outros
  5. Use snap-to-grid — Mantem controles alinhados sem posicionamento manual
  6. Verifique as Ferramentas Bidirecionais — Alterne entre designer e visao de codigo para ver atualizacoes em tempo real
  7. Salve frequentemente — Ctrl+S salva tanto os dados de design quanto o codigo

Nesta Página

Primeiros Passos Paleta de Componentes Recursos do IDE Tutoriais Referencia Plataformas Recursos do Designer Selecao de Controles Selecao Unica Multi-Selecao Copiar e Colar Controles Menu Formatar Geracao de Codigo em Tempo Real Modo Design vs Modo Execucao Propriedades do Formulario no Designer Exemplos de Codigo Sintaxe DEFINE FORM Simples Abordagem Baseada em Classe (Gerado pelo IDE) Dicas para Design Eficiente de Formularios