Controles Adicionales
La pestania Adicionales proporciona controles visuales y de entrada mejorados que extienden el conjunto estandar con graficos, cuadriculas y editores especializados.
TBitBtn CT_BITBTN = 12
Un boton que muestra tanto una leyenda como un glifo (icono de mapa de bits). Ideal para barras de herramientas y botones de accion.
| Propiedad | Tipo | Valor predet. | Descripcion |
cText | String | "BitBtn" | Leyenda del boton |
cGlyph | String | "" | Ruta al glifo de imagen de mapa de bits |
nGlyphAlign | Numerico | 0 | Posicion del glifo: 0=Izquierda, 1=Derecha, 2=Arriba, 3=Abajo |
nSpacing | Numerico | 4 | Espacio entre glifo y texto (pixeles) |
nWidth, nHeight | Numerico | 100, 30 | Tamano |
| Evento | Categoria | Descripcion |
OnClick | Accion | Boton pulsado |
OnEnter | Foco | Control recibio el foco |
OnExit | Foco | Control perdio el foco |
| Plataforma | Widget Nativo |
| Windows | BUTTON (BS_BITMAP | BS_PUSHBUTTON) |
| macOS | NSButton (NSBezelStyleTexturedSquare + imagen) |
| Linux | GtkButton + GtkImage |
// BitBtn con glifo
@ 10, 10 BITBTN oBtn PROMPT "Guardar" OF oForm GLYPH "save.bmp" SIZE 100, 30
oBtn:OnClick := { || SaveRecord() }
Boton plano disenado para barras de herramientas. Puede actuar como alternador y no recibe el foco.
| Propiedad | Tipo | Valor predet. | Descripcion |
cGlyph | String | "" | Ruta al glifo de mapa de bits |
lFlat | Logico | .T. | Apariencia plana (sin borde hasta pasar el mouse) |
lDown | Logico | .F. | Estado presionado/alternado |
nGroupIndex | Numerico | 0 | Grupo para exclusion mutua (0 = ninguno) |
lAllowAllUp | Logico | .F. | Permitir que todos los botones del grupo se desactiven |
| Evento | Categoria | Descripcion |
OnClick | Accion | Boton pulsado |
| Plataforma | Widget Nativo |
| Windows | BUTTON (BS_OWNERDRAW, renderizado plano) |
| macOS | NSButton (NSBezelStyleRoundRect, sin borde) |
| Linux | GtkToggleButton (relieve plano) |
// Botones de velocidad en barra de herramientas con exclusion mutua
@ 2, 2 SPEEDBTN oBold GLYPH "bold.bmp" OF oToolbar GROUP 1 SIZE 24, 24
@ 2, 28 SPEEDBTN oItalic GLYPH "italic.bmp" OF oToolbar GROUP 1 SIZE 24, 24
TImage CT_IMAGE = 14
Muestra una imagen de mapa de bits, JPEG, PNG o GIF en un formulario.
| Propiedad | Tipo | Valor predet. | Descripcion |
cFileName | String | "" | Ruta al archivo de imagen |
lStretch | Logico | .F. | Estirar imagen para ajustar al control |
lProportional | Logico | .F. | Mantener relacion de aspecto al estirar |
lCenter | Logico | .F. | Centrar imagen dentro del control |
nWidth, nHeight | Numerico | 100, 100 | Tamano |
| Evento | Categoria | Descripcion |
OnClick | Accion | Imagen pulsada |
OnDblClick | Accion | Doble clic en la imagen |
| Plataforma | Widget Nativo |
| Windows | STATIC (SS_BITMAP | SS_REALSIZECONTROL) |
| macOS | NSImageView |
| Linux | GtkImage |
// Mostrar un logo
@ 10, 10 IMAGE oLogo FILENAME "logo.png" OF oForm SIZE 200, 80 STRETCH
TShape CT_SHAPE = 15
Dibuja formas geometricas (rectangulo, circulo, elipse, rectangulo redondeado) en un formulario.
| Propiedad | Tipo | Valor predet. | Descripcion |
nShape | Numerico | 0 | 0=Rectangulo, 1=Circulo, 2=Elipse, 3=RoundRect |
nPenColor | Color | CLR_BLACK | Color del borde |
nPenWidth | Numerico | 1 | Grosor del borde |
nBrushColor | Color | CLR_WHITE | Color de relleno |
| Plataforma | Widget Nativo |
| Windows | STATIC dibujado por el propietario (dibujo GDI) |
| macOS | NSView (Core Graphics drawRect:) |
| Linux | GtkDrawingArea (Cairo) |
TBevel CT_BEVEL = 16
Control decorativo no interactivo que dibuja lineas y cajas con bisel elevado o hundido.
| Propiedad | Tipo | Valor predet. | Descripcion |
nStyle | Numerico | 0 | 0=Hundido, 1=Elevado |
nBevelShape | Numerico | 0 | 0=Caja, 1=LineaSuperior, 2=LineaInferior, 3=LineaIzquierda, 4=LineaDerecha |
| Plataforma | Widget Nativo |
| Windows | STATIC (SS_ETCHEDHORZ / SS_ETCHEDFRAME) |
| macOS | NSBox (NSBoxSeparator) |
| Linux | GtkSeparator / GtkFrame |
TMaskEdit CT_MASKEDIT = 28
Entrada de texto con mascara de entrada que restringe el formato (fechas, numeros de telefono, etc.).
| Propiedad | Tipo | Valor predet. | Descripcion |
cText | String | "" | Contenido de texto actual (con literales) |
cMask | String | "" | Mascara de entrada (ej. "999-999-9999") |
lSaveLiterals | Logico | .T. | Incluir literales de mascara en el valor |
cPlaceholder | String | "_" | Caracter de marcador de posicion |
| Evento | Categoria | Descripcion |
OnChange | Accion | Contenido de texto cambiado |
OnValidate | Accion | Validacion de mascara completada |
OnEnter | Foco | Control recibio el foco |
OnExit | Foco | Control perdio el foco |
| Plataforma | Widget Nativo |
| Windows | EDIT (ES_AUTOHSCROLL + logica de mascara) |
| macOS | NSTextField + NSFormatter |
| Linux | GtkEntry + filtrado de entrada |
// Mascara de telefono
@ 50, 120 MASKEDIT oPhone MASK "(999) 999-9999" OF oForm SIZE 160, 24
TStringGrid CT_STRINGGRID = 29
Cuadricula editable de celdas organizadas en filas y columnas. Adecuada para entrada de datos tabulares.
| Propiedad | Tipo | Valor predet. | Descripcion |
nColCount | Numerico | 5 | Numero de columnas |
nRowCount | Numerico | 5 | Numero de filas |
nFixedCols | Numerico | 1 | Numero de columnas fijas (encabezado) |
nFixedRows | Numerico | 1 | Numero de filas fijas (encabezado) |
nDefaultColWidth | Numerico | 64 | Ancho predeterminado de columna |
nDefaultRowHeight | Numerico | 24 | Alto predeterminado de fila |
lEditing | Logico | .T. | Permitir edicion de celdas |
| Evento | Categoria | Descripcion |
OnSelectCell | Accion | Celda seleccionada |
OnSetEditText | Accion | Texto de celda cambiado |
OnDrawCell | Dibujo | Pintado personalizado de celda |
OnKeyDown | Teclado | Tecla presionada en la cuadricula |
| Plataforma | Widget Nativo |
| Windows | Cuadricula personalizada dibujada por propietario (basada en WC_LISTVIEW) |
| macOS | NSTableView (editable mult_columna) |
| Linux | GtkTreeView + GtkListStore (editable) |
// Crear una cuadricula tipo hoja de calculo de 3 columnas
@ 10, 10 STRINGGRID oGrid OF oForm SIZE 400, 200 COLS 3 ROWS 10
oGrid:SetCell( 0, 0, "Producto" )
oGrid:SetCell( 0, 1, "Cant" )
oGrid:SetCell( 0, 2, "Precio" )
Panel contenedor desplazable. Los controles colocados dentro obtienen barras de desplazamiento automaticamente cuando exceden el area visible.
| Propiedad | Tipo | Valor predet. | Descripcion |
lAutoScroll | Logico | .T. | Mostrar barras de desplazamiento automaticamente |
nHorzPos | Numerico | 0 | Posicion de desplazamiento horizontal |
nVertPos | Numerico | 0 | Posicion de desplazamiento vertical |
nWidth, nHeight | Numerico | 200, 200 | Tamano del area visible |
| Evento | Categoria | Descripcion |
OnScroll | Accion | Posicion de desplazamiento cambiada |
OnResize | Diseno | Contenedor redimensionado |
| Plataforma | Widget Nativo |
| Windows | Window (WS_HSCROLL | WS_VSCROLL) |
| macOS | NSScrollView + NSView |
| Linux | GtkScrolledWindow + GtkViewport |
TStaticText CT_STATICTEXT = 31
Etiqueta con borde visible. Similar a TLabel pero con estilo de borde hundido, elevado o simple.
| Propiedad | Tipo | Valor predet. | Descripcion |
cText | String | "" | Texto a mostrar |
nBorderStyle | Numerico | 0 | 0=Ninguno, 1=Simple, 2=Hundido |
nAlignment | Numerico | 0 | 0=Izquierda, 1=Centro, 2=Derecha |
| Plataforma | Widget Nativo |
| Windows | STATIC (SS_SUNKEN | SS_LEFT) |
| macOS | NSTextField (con borde, no editable) |
| Linux | GtkLabel + GtkFrame |
TLabeledEdit CT_LABELEDEDIT = 32
Control compuesto que combina un TLabel y un TEdit en un solo componente. Simplifica el diseno de formularios.
| Propiedad | Tipo | Valor predet. | Descripcion |
cText | String | "" | Contenido de texto del edit |
cLabelText | String | "Label" | Leyenda para la parte de etiqueta |
nLabelPosition | Numerico | 0 | 0=Izquierda, 1=Arriba, 2=Derecha, 3=Abajo |
nLabelSpacing | Numerico | 3 | Espacio entre etiqueta y edit (pixeles) |
lReadOnly | Logico | .F. | Impedir edicion |
| Evento | Categoria | Descripcion |
OnChange | Accion | Texto del edit cambiado |
OnEnter | Foco | Edit recibio el foco |
OnExit | Foco | Edit perdio el foco |
// Ediciones etiquetadas para un formulario de entrada rapida
@ 20, 20 LABELEDEDIT oName LABEL "Nombre Completo:" OF oForm SIZE 200, 24
@ 50, 20 LABELEDEDIT oEmail LABEL "Correo:" OF oForm SIZE 200, 24
10 Controles Adicionales
Estos controles mejorados proporcionan elementos graficos, entrada con mascara, edicion en cuadricula y compuestos. Disponibles en todas las plataformas con renderizado nativo o dibujado por el propietario.