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.

PropriedadeTipoPadraoDescricao
nTabIndexNumerico0Aba ativa atualmente (base 0)
nTabCountNumerico0Numero de abas (somente leitura)
nTabPositionNumerico00=Topo, 1=Inferior, 2=Esquerda, 3=Direita
lHotTrackLogico.F.Destacar abas ao passar o mouse
EventoCategoriaDescricao
OnChangeAcaoAba ativa alterada
OnChangingAcaoAba esta prestes a ser alterada (pode cancelar)
PlataformaWidget Nativo
WindowsWC_TABCONTROL (SysTabControl32)
macOSNSTabView
LinuxGtkNotebook
// 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.

PropriedadeTipoPadraoDescricao
lShowLinesLogico.T.Exibir linhas de conexao entre nos
lShowButtonsLogico.T.Exibir botoes de expansao/recolhimento
lCheckBoxesLogico.F.Exibir caixas de selecao ao lado dos itens
lSortedLogico.F.Ordenar nos automaticamente em ordem alfabetica
oSelectedTreeNodeNILNo atualmente selecionado
EventoCategoriaDescricao
OnChangeAcaoNo selecionado alterado
OnExpandingAcaoNo esta prestes a ser expandido
OnCollapsingAcaoNo esta prestes a ser recolhido
OnDblClickAcaoNo clicado duas vezes
OnEditedAcaoRotulo do no editado
PlataformaWidget Nativo
WindowsWC_TREEVIEW (SysTreeView32)
macOSNSOutlineView
LinuxGtkTreeView (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.

PropriedadeTipoPadraoDescricao
nViewStyleNumerico30=Icone, 1=IconePequeno, 2=Lista, 3=Relatorio
lGridLinesLogico.F.Exibir linhas de grade na visao de relatorio
lCheckBoxesLogico.F.Exibir caixas de selecao
lMultiSelectLogico.F.Permitir selecao multipla
nSortColumnNumerico-1Coluna para ordenacao (-1 = nenhuma)
EventoCategoriaDescricao
OnSelectItemAcaoItem selecionado
OnDblClickAcaoItem clicado duas vezes
OnColumnClickAcaoCabecalho de coluna clicado (para ordenacao)
OnEditedAcaoRotulo do item editado
PlataformaWidget Nativo
WindowsWC_LISTVIEW (SysListView32)
macOSNSTableView (multi-coluna)
LinuxGtkTreeView + GtkListStore

TProgressBar CT_PROGRESSBAR = 22

Indicador visual de progresso de operacao. Suporta modos deterministico (percentual) e indeterminado (marquee).

PropriedadeTipoPadraoDescricao
nMinNumerico0Valor minimo
nMaxNumerico100Valor maximo
nPositionNumerico0Valor de progresso atual
lMarqueeLogico.F.Modo indeterminado (animado)
PlataformaWidget Nativo
WindowsPROGRESS_CLASS (msctls_progress32)
macOSNSProgressIndicator
LinuxGtkProgressBar
// 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).

PropriedadeTipoPadraoDescricao
cTextString""Conteudo do texto simples
cRTFTextString""Conteudo de texto rico (RTF)
lReadOnlyLogico.F.Impede edicao
lWordWrapLogico.T.Quebra linhas longas
nSelStartNumerico0Posicao inicial da selecao
nSelLengthNumerico0Comprimento da selecao
EventoCategoriaDescricao
OnChangeAcaoConteudo alterado
OnSelChangeAcaoSelecao alterada
OnKeyDownTecladoTecla pressionada
PlataformaWidget Nativo
WindowsRICHEDIT_CLASS (RichEdit20W)
macOSNSTextView (RTF ativado)
LinuxGtkTextView (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.

PropriedadeTipoPadraoDescricao
nMinNumerico0Valor minimo
nMaxNumerico100Valor maximo
nPositionNumerico0Posicao atual do controle deslizante
nTickFreqNumerico1Frequencia das marcas
lHorizontalLogico.T.Orientacao horizontal
EventoCategoriaDescricao
OnChangeAcaoPosicao do controle deslizante alterada
PlataformaWidget Nativo
WindowsTRACKBAR_CLASS (msctls_trackbar32)
macOSNSSlider
LinuxGtkScale

TUpDown CT_UPDOWN = 35

Botao de incremento (setas para cima/baixo), normalmente pareado com um controle de edicao para entrada numerica.

PropriedadeTipoPadraoDescricao
nMinNumerico0Valor minimo
nMaxNumerico100Valor maximo
nPositionNumerico0Valor atual
nIncrementNumerico1Incremento de passo
oBuddyControleNILControle de edicao associado
lWrapLogico.F.Retornar do maximo ao minimo
EventoCategoriaDescricao
OnChangeAcaoValor alterado (clicado para cima/baixo)
PlataformaWidget Nativo
WindowsUPDOWN_CLASS (msctls_updown32)
macOSNSStepper
LinuxGtkSpinButton

TDateTimePicker CT_DATETIMEPICKER = 36

Seletor de data e/ou hora com calendario suspenso. Fornece formatacao com suporte a localizacao.

PropriedadeTipoPadraoDescricao
dValueDataDate()Data/hora selecionada
dMinDateDataNILData minima selecionavel
dMaxDateDataNILData maxima selecionavel
cFormatString""Formato de exibicao personalizado (ex. "yyyy-MM-dd")
nKindNumerico00=Data, 1=Hora, 2=DataHora
EventoCategoriaDescricao
OnChangeAcaoData/hora selecionada alterada
OnDropDownAcaoCalendario suspenso aberto
OnCloseUpAcaoCalendario suspenso fechado
PlataformaWidget Nativo
WindowsDATETIMEPICK_CLASS (SysDateTimePick32)
macOSNSDatePicker
LinuxGtkCalendar + 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.

PropriedadeTipoPadraoDescricao
dValueDataDate()Data selecionada
dMinDateDataNILData minima selecionavel
dMaxDateDataNILData maxima selecionavel
lMultiSelectLogico.F.Permitir selecao de intervalo de datas
lShowTodayLogico.T.Destacar data de hoje
EventoCategoriaDescricao
OnSelectAcaoData selecionada
OnSelChangeAcaoIntervalo de selecao alterado
PlataformaWidget Nativo
WindowsMONTHCAL_CLASS (SysMonthCal32)
macOSNSDatePicker (NSClockAndCalendarDatePickerStyle)
LinuxGtkCalendar
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).

Nesta Página

TTabControl CT_TABCONTROL = 33 TTreeView CT_TREEVIEW = 20 TListView CT_LISTVIEW = 21 TProgressBar CT_PROGRESSBAR = 22 TRichEdit CT_RICHEDIT = 23 TTrackBar CT_TRACKBAR = 34 TUpDown CT_UPDOWN = 35 TDateTimePicker CT_DATETIMEPICKER = 36 TMonthCalendar CT_MONTHCALENDAR = 37