Controles Nativos de Plataforma
A aba Win32 / Cocoa / GTK3 fornece controles complexos que mapeiam diretamente para os widgets avancados nativos de cada plataforma. Estes controles oferecem funcionalidade rica com integracao completa ao sistema operacional.
TTabControl CT_TABCONTROL = 33
Conteiner de paginas com abas. Cada aba hospeda um painel de controles, permitindo interfaces multipagina.
| Propriedade | Tipo | Padrao | Descricao |
nTabIndex | Numerico | 0 | Aba ativa atualmente (base 0) |
nTabCount | Numerico | 0 | Numero de abas (somente leitura) |
nTabPosition | Numerico | 0 | 0=Topo, 1=Inferior, 2=Esquerda, 3=Direita |
lHotTrack | Logico | .F. | Destacar abas ao passar o mouse |
| Evento | Categoria | Descricao |
OnChange | Acao | Aba ativa alterada |
OnChanging | Acao | Aba esta prestes a ser alterada (pode cancelar) |
| Plataforma | Widget Nativo |
| Windows | WC_TABCONTROL (SysTabControl32) |
| macOS | NSTabView |
| Linux | GtkNotebook |
// Criar um formulario com abas
@ 10, 10 TABCONTROL oAbas OF oForm SIZE 400, 300
oAbas:AddTab( "Geral" )
oAbas:AddTab( "Detalhes" )
oAbas:AddTab( "Observacoes" )
TTreeView CT_TREEVIEW = 20
Exibicao hierarquica em arvore com nos expansiveis/recoliveis. Ideal para navegadores de arquivos, arvores de categorias e organogramas.
| Propriedade | Tipo | Padrao | Descricao |
lShowLines | Logico | .T. | Exibir linhas de conexao entre nos |
lShowButtons | Logico | .T. | Exibir botoes de expansao/recolhimento |
lCheckBoxes | Logico | .F. | Exibir caixas de selecao ao lado dos itens |
lSorted | Logico | .F. | Ordenar nos automaticamente em ordem alfabetica |
oSelected | TreeNode | NIL | No atualmente selecionado |
| Evento | Categoria | Descricao |
OnChange | Acao | No selecionado alterado |
OnExpanding | Acao | No esta prestes a ser expandido |
OnCollapsing | Acao | No esta prestes a ser recolhido |
OnDblClick | Acao | No clicado duas vezes |
OnEdited | Acao | Rotulo do no editado |
| Plataforma | Widget Nativo |
| Windows | WC_TREEVIEW (SysTreeView32) |
| macOS | NSOutlineView |
| Linux | GtkTreeView (modelo de arvore) |
// Construir uma arvore de categorias
@ 10, 10 TREEVIEW oArvore OF oForm SIZE 200, 300
oRaiz := oArvore:AddItem( "Produtos" )
oRaiz:AddChild( "Eletronicos" )
oRaiz:AddChild( "Roupas" )
oRaiz:Expand()
TListView CT_LISTVIEW = 21
Lista multi-coluna com icones. Suporta modos de exibicao icone, icone pequeno, lista e detalhe/relatorio.
| Propriedade | Tipo | Padrao | Descricao |
nViewStyle | Numerico | 3 | 0=Icone, 1=IconePequeno, 2=Lista, 3=Relatorio |
lGridLines | Logico | .F. | Exibir linhas de grade na visao de relatorio |
lCheckBoxes | Logico | .F. | Exibir caixas de selecao |
lMultiSelect | Logico | .F. | Permitir selecao multipla |
nSortColumn | Numerico | -1 | Coluna para ordenacao (-1 = nenhuma) |
| Evento | Categoria | Descricao |
OnSelectItem | Acao | Item selecionado |
OnDblClick | Acao | Item clicado duas vezes |
OnColumnClick | Acao | Cabecalho de coluna clicado (para ordenacao) |
OnEdited | Acao | Rotulo do item editado |
| Plataforma | Widget Nativo |
| Windows | WC_LISTVIEW (SysListView32) |
| macOS | NSTableView (multi-coluna) |
| Linux | GtkTreeView + GtkListStore |
TProgressBar CT_PROGRESSBAR = 22
Indicador visual de progresso de operacao. Suporta modos deterministico (percentual) e indeterminado (marquee).
| Propriedade | Tipo | Padrao | Descricao |
nMin | Numerico | 0 | Valor minimo |
nMax | Numerico | 100 | Valor maximo |
nPosition | Numerico | 0 | Valor de progresso atual |
lMarquee | Logico | .F. | Modo indeterminado (animado) |
| Plataforma | Widget Nativo |
| Windows | PROGRESS_CLASS (msctls_progress32) |
| macOS | NSProgressIndicator |
| Linux | GtkProgressBar |
// Barra de progresso para processamento de arquivo
@ 200, 20 PROGRESSBAR oProgresso OF oForm SIZE 300, 20 RANGE 0, 100
oProgresso:nPosition := 45
TRichEdit CT_RICHEDIT = 23
Editor de texto rico que suporta negrito, italico, sublinhado, cores, fontes e formatacao de paragrafos (RTF).
| Propriedade | Tipo | Padrao | Descricao |
cText | String | "" | Conteudo do texto simples |
cRTFText | String | "" | Conteudo de texto rico (RTF) |
lReadOnly | Logico | .F. | Impede edicao |
lWordWrap | Logico | .T. | Quebra linhas longas |
nSelStart | Numerico | 0 | Posicao inicial da selecao |
nSelLength | Numerico | 0 | Comprimento da selecao |
| Evento | Categoria | Descricao |
OnChange | Acao | Conteudo alterado |
OnSelChange | Acao | Selecao alterada |
OnKeyDown | Teclado | Tecla pressionada |
| Plataforma | Widget Nativo |
| Windows | RICHEDIT_CLASS (RichEdit20W) |
| macOS | NSTextView (RTF ativado) |
| Linux | GtkTextView (com marcacao Pango) |
TTrackBar CT_TRACKBAR = 34
Controle deslizante para selecao de valor numerico dentro de um intervalo. Usado para volume, zoom e ajustes similares.
| Propriedade | Tipo | Padrao | Descricao |
nMin | Numerico | 0 | Valor minimo |
nMax | Numerico | 100 | Valor maximo |
nPosition | Numerico | 0 | Posicao atual do controle deslizante |
nTickFreq | Numerico | 1 | Frequencia das marcas |
lHorizontal | Logico | .T. | Orientacao horizontal |
| Evento | Categoria | Descricao |
OnChange | Acao | Posicao do controle deslizante alterada |
| Plataforma | Widget Nativo |
| Windows | TRACKBAR_CLASS (msctls_trackbar32) |
| macOS | NSSlider |
| Linux | GtkScale |
TUpDown CT_UPDOWN = 35
Botao de incremento (setas para cima/baixo), normalmente pareado com um controle de edicao para entrada numerica.
| Propriedade | Tipo | Padrao | Descricao |
nMin | Numerico | 0 | Valor minimo |
nMax | Numerico | 100 | Valor maximo |
nPosition | Numerico | 0 | Valor atual |
nIncrement | Numerico | 1 | Incremento de passo |
oBuddy | Controle | NIL | Controle de edicao associado |
lWrap | Logico | .F. | Retornar do maximo ao minimo |
| Evento | Categoria | Descricao |
OnChange | Acao | Valor alterado (clicado para cima/baixo) |
| Plataforma | Widget Nativo |
| Windows | UPDOWN_CLASS (msctls_updown32) |
| macOS | NSStepper |
| Linux | GtkSpinButton |
TDateTimePicker CT_DATETIMEPICKER = 36
Seletor de data e/ou hora com calendario suspenso. Fornece formatacao com suporte a localizacao.
| Propriedade | Tipo | Padrao | Descricao |
dValue | Data | Date() | Data/hora selecionada |
dMinDate | Data | NIL | Data minima selecionavel |
dMaxDate | Data | NIL | Data maxima selecionavel |
cFormat | String | "" | Formato de exibicao personalizado (ex. "yyyy-MM-dd") |
nKind | Numerico | 0 | 0=Data, 1=Hora, 2=DataHora |
| Evento | Categoria | Descricao |
OnChange | Acao | Data/hora selecionada alterada |
OnDropDown | Acao | Calendario suspenso aberto |
OnCloseUp | Acao | Calendario suspenso fechado |
| Plataforma | Widget Nativo |
| Windows | DATETIMEPICK_CLASS (SysDateTimePick32) |
| macOS | NSDatePicker |
| Linux | GtkCalendar + GtkPopover |
// Seletor de data para data da fatura
@ 80, 120 DATETIMEPICKER oDtp OF oForm SIZE 150, 24
oDtp:cFormat := "dd/MM/yyyy"
TMonthCalendar CT_MONTHCALENDAR = 37
Controle de calendario mensal embutido. Exibe uma grade completa do mes para selecao de data.
| Propriedade | Tipo | Padrao | Descricao |
dValue | Data | Date() | Data selecionada |
dMinDate | Data | NIL | Data minima selecionavel |
dMaxDate | Data | NIL | Data maxima selecionavel |
lMultiSelect | Logico | .F. | Permitir selecao de intervalo de datas |
lShowToday | Logico | .T. | Destacar data de hoje |
| Evento | Categoria | Descricao |
OnSelect | Acao | Data selecionada |
OnSelChange | Acao | Intervalo de selecao alterado |
| Plataforma | Widget Nativo |
| Windows | MONTHCAL_CLASS (SysMonthCal32) |
| macOS | NSDatePicker (NSClockAndCalendarDatePickerStyle) |
| Linux | GtkCalendar |
9 Controles Nativos de Plataforma
Estes controles usam widgets avancados especificos do sistema operacional para maxima aparencia nativa.
HarbourBuilder mapeia automaticamente cada controle para o widget correto no Windows (Win32), macOS (Cocoa) e Linux (GTK3).