Controles Nativos de Plataforma
La pestania Win32 / Cocoa / GTK3 proporciona controles complejos que se asignan directamente a los widgets nativos avanzados de cada plataforma. Estos controles ofrecen funcionalidad rica con integracion completa del sistema operativo.
TTabControl CT_TABCONTROL = 33
Contenedor de paginas con pestanas. Cada pestana alberga un panel de controles, permitiendo interfaces multipagina.
| Propiedad | Tipo | Valor predet. | Descripcion |
nTabIndex | Numerico | 0 | Pestana activa actualmente (base 0) |
nTabCount | Numerico | 0 | Numero de pestanas (solo lectura) |
nTabPosition | Numerico | 0 | 0=Arriba, 1=Abajo, 2=Izquierda, 3=Derecha |
lHotTrack | Logico | .F. | Resaltar pestanas al pasar el mouse |
| Evento | Categoria | Descripcion |
OnChange | Accion | Pestana activa cambiada |
OnChanging | Accion | La pestana esta a punto de cambiar (se puede cancelar) |
| Plataforma | Widget Nativo |
| Windows | WC_TABCONTROL (SysTabControl32) |
| macOS | NSTabView |
| Linux | GtkNotebook |
// Crear un formulario con pestanas
@ 10, 10 TABCONTROL oTab OF oForm SIZE 400, 300
oTab:AddTab( "General" )
oTab:AddTab( "Detalles" )
oTab:AddTab( "Notas" )
TTreeView CT_TREEVIEW = 20
Visualizacion de arbol jerarquico con nodos expandibles/colapsables. Ideal para exploradores de archivos, arboles de categorias y organigramas.
| Propiedad | Tipo | Valor predet. | Descripcion |
lShowLines | Logico | .T. | Mostrar lineas conectoras entre nodos |
lShowButtons | Logico | .T. | Mostrar botones de expandir/colapsar |
lCheckBoxes | Logico | .F. | Mostrar casillas de verificacion junto a los elementos |
lSorted | Logico | .F. | Ordenar nodos automaticamente por orden alfabetico |
oSelected | TreeNode | NIL | Nodo seleccionado actualmente |
| Evento | Categoria | Descripcion |
OnChange | Accion | Nodo seleccionado cambiado |
OnExpanding | Accion | Nodo a punto de expandirse |
OnCollapsing | Accion | Nodo a punto de colapsarse |
OnDblClick | Accion | Doble clic en nodo |
OnEdited | Accion | Etiqueta del nodo editada |
| Plataforma | Widget Nativo |
| Windows | WC_TREEVIEW (SysTreeView32) |
| macOS | NSOutlineView |
| Linux | GtkTreeView (modelo de arbol) |
// Construir un arbol de categorias
@ 10, 10 TREEVIEW oTree OF oForm SIZE 200, 300
oRoot := oTree:AddItem( "Productos" )
oRoot:AddChild( "Electronica" )
oRoot:AddChild( "Ropa" )
oRoot:Expand()
TListView CT_LISTVIEW = 21
Lista mult_columna con iconos. Soporta modos de vista: icono, icono pequeno, lista y detalle/informe.
| Propiedad | Tipo | Valor predet. | Descripcion |
nViewStyle | Numerico | 3 | 0=Icono, 1=IconoPeq, 2=Lista, 3=Informe |
lGridLines | Logico | .F. | Mostrar lineas de cuadricula en vista informe |
lCheckBoxes | Logico | .F. | Mostrar casillas de verificacion |
lMultiSelect | Logico | .F. | Permitir seleccion multiple |
nSortColumn | Numerico | -1 | Columna para ordenar (-1 = ninguna) |
| Evento | Categoria | Descripcion |
OnSelectItem | Accion | Elemento seleccionado |
OnDblClick | Accion | Doble clic en elemento |
OnColumnClick | Accion | Encabezado de columna pulsado (para ordenar) |
OnEdited | Accion | Etiqueta del elemento editada |
| Plataforma | Widget Nativo |
| Windows | WC_LISTVIEW (SysListView32) |
| macOS | NSTableView (mult_columna) |
| Linux | GtkTreeView + GtkListStore |
TProgressBar CT_PROGRESSBAR = 22
Indicador visual del progreso de una operacion. Soporta modos determinista (porcentaje) e indeterminado (marquesina).
| Propiedad | Tipo | Valor predet. | Descripcion |
nMin | Numerico | 0 | Valor minimo |
nMax | Numerico | 100 | Valor maximo |
nPosition | Numerico | 0 | Valor de progreso actual |
lMarquee | Logico | .F. | Modo indeterminado (animado) |
| Plataforma | Widget Nativo |
| Windows | PROGRESS_CLASS (msctls_progress32) |
| macOS | NSProgressIndicator |
| Linux | GtkProgressBar |
// Barra de progreso para procesamiento de archivos
@ 200, 20 PROGRESSBAR oProgress OF oForm SIZE 300, 20 RANGE 0, 100
oProgress:nPosition := 45
TRichEdit CT_RICHEDIT = 23
Editor de texto enriquecido que soporta negrita, cursiva, subrayado, colores, fuentes y formateo de parrafos (RTF).
| Propiedad | Tipo | Valor predet. | Descripcion |
cText | String | "" | Contenido de texto plano |
cRTFText | String | "" | Contenido de texto enriquecido (RTF) |
lReadOnly | Logico | .F. | Impedir edicion |
lWordWrap | Logico | .T. | Ajustar lineas largas |
nSelStart | Numerico | 0 | Posicion de inicio de seleccion |
nSelLength | Numerico | 0 | Longitud de seleccion |
| Evento | Categoria | Descripcion |
OnChange | Accion | Contenido cambiado |
OnSelChange | Accion | Seleccion cambiada |
OnKeyDown | Teclado | Tecla presionada |
| Plataforma | Widget Nativo |
| Windows | RICHEDIT_CLASS (RichEdit20W) |
| macOS | NSTextView (RTF habilitado) |
| Linux | GtkTextView (con marcado Pango) |
TTrackBar CT_TRACKBAR = 34
Control deslizante para seleccionar un valor numerico dentro de un rango. Usado para volumen, zoom y ajustes similares.
| Propiedad | Tipo | Valor predet. | Descripcion |
nMin | Numerico | 0 | Valor minimo |
nMax | Numerico | 100 | Valor maximo |
nPosition | Numerico | 0 | Posicion actual del deslizador |
nTickFreq | Numerico | 1 | Frecuencia de marcas |
lHorizontal | Logico | .T. | Orientacion horizontal |
| Evento | Categoria | Descripcion |
OnChange | Accion | Posicion del deslizador cambiada |
| Plataforma | Widget Nativo |
| Windows | TRACKBAR_CLASS (msctls_trackbar32) |
| macOS | NSSlider |
| Linux | GtkScale |
TUpDown CT_UPDOWN = 35
Boton giratorio (flechas arriba/abajo) normalmente asociado con un control de edicion para entrada numerica.
| Propiedad | Tipo | Valor predet. | Descripcion |
nMin | Numerico | 0 | Valor minimo |
nMax | Numerico | 100 | Valor maximo |
nPosition | Numerico | 0 | Valor actual |
nIncrement | Numerico | 1 | Incremento por paso |
oBuddy | Control | NIL | Control de edicion asociado |
lWrap | Logico | .F. | Volver de maximo a minimo |
| Evento | Categoria | Descripcion |
OnChange | Accion | Valor cambiado (clic arriba/abajo) |
| Plataforma | Widget Nativo |
| Windows | UPDOWN_CLASS (msctls_updown32) |
| macOS | NSStepper |
| Linux | GtkSpinButton |
TDateTimePicker CT_DATETIMEPICKER = 36
Selector de fecha y/u hora con calendario desplegable. Proporciona formateo consciente de la configuracion regional.
| Propiedad | Tipo | Valor predet. | Descripcion |
dValue | Date | Date() | Fecha/hora seleccionada |
dMinDate | Date | NIL | Fecha minima seleccionable |
dMaxDate | Date | NIL | Fecha maxima seleccionable |
cFormat | String | "" | Formato de visualizacion personalizado (ej. "yyyy-MM-dd") |
nKind | Numerico | 0 | 0=Fecha, 1=Hora, 2=FechaHora |
| Evento | Categoria | Descripcion |
OnChange | Accion | Fecha/hora seleccionada cambiada |
OnDropDown | Accion | Calendario desplegable abierto |
OnCloseUp | Accion | Calendario desplegable cerrado |
| Plataforma | Widget Nativo |
| Windows | DATETIMEPICK_CLASS (SysDateTimePick32) |
| macOS | NSDatePicker |
| Linux | GtkCalendar + GtkPopover |
// Selector de fecha para fecha de factura
@ 80, 120 DATETIMEPICKER oDtp OF oForm SIZE 150, 24
oDtp:cFormat := "dd/MM/yyyy"
TMonthCalendar CT_MONTHCALENDAR = 37
Control de calendario mensual en linea. Muestra una cuadricula completa del mes para seleccion de fecha.
| Propiedad | Tipo | Valor predet. | Descripcion |
dValue | Date | Date() | Fecha seleccionada |
dMinDate | Date | NIL | Fecha minima seleccionable |
dMaxDate | Date | NIL | Fecha maxima seleccionable |
lMultiSelect | Logico | .F. | Permitir seleccionar un rango de fechas |
lShowToday | Logico | .T. | Resaltar la fecha de hoy |
| Evento | Categoria | Descripcion |
OnSelect | Accion | Fecha seleccionada |
OnSelChange | Accion | Rango de seleccion cambiado |
| Plataforma | Widget Nativo |
| Windows | MONTHCAL_CLASS (SysMonthCal32) |
| macOS | NSDatePicker (NSClockAndCalendarDatePickerStyle) |
| Linux | GtkCalendar |
9 Controles Nativos de Plataforma
Estos controles utilizan widgets avanzados especificos del sistema operativo para maxima apariencia nativa. HarbourBuilder asigna automaticamente cada control al widget correcto en Windows (Win32), macOS (Cocoa) y Linux (GTK3).