Controles de Sistema
La pestania Sistema contiene controles no visuales y de bajo nivel que proporcionan funcionalidad de temporizador y superficies de dibujo personalizadas.
TTimer CT_TIMER = 38
Componente no visual que dispara un evento a intervalos regulares. Se usa para tareas periodicas como sondeo, animaciones, guardado automatico y actualizaciones de estado. No aparece en el formulario en tiempo de ejecucion.
| Propiedad | Tipo | Valor predet. | Descripcion |
nInterval | Numerico | 1000 | Intervalo del temporizador en milisegundos |
lEnabled | Logico | .T. | Si el temporizador esta activo |
| Evento | Categoria | Descripcion |
OnTimer | Accion | Se dispara cada vez que transcurre el intervalo |
| Plataforma | Implementacion |
| Windows | SetTimer() / WM_TIMER |
| macOS | NSTimer (scheduledTimerWithTimeInterval:) |
| Linux | g_timeout_add() |
// Guardado automatico cada 30 segundos
TIMER oTimer OF oForm INTERVAL 30000
oTimer:OnTimer := { || AutoSave() }
// Desactivar temporalmente el temporizador
oTimer:lEnabled := .F.
// Reactivar con intervalo mas rapido
oTimer:nInterval := 5000
oTimer:lEnabled := .T.
TPaintBox CT_PAINTBOX = 39
Superficie de dibujo personalizada. Proporciona un objeto Canvas para pintar libremente con lineas, rectangulos, elipses, texto e imagenes. El evento OnPaint se llama cada vez que el control necesita redibujarse.
| Propiedad | Tipo | Valor predet. | Descripcion |
oCanvas | Canvas | (auto) | Objeto de superficie de dibujo con lapiz, brocha y fuente |
nWidth, nHeight | Numerico | 200, 200 | Tamano del area de dibujo |
nClrPane | Color | CLR_WHITE | Color de fondo |
| Evento | Categoria | Descripcion |
OnPaint | Dibujo | El control necesita repintarse (recibe oCanvas) |
OnClick | Accion | Superficie pulsada |
OnMouseDown | Mouse | Boton del mouse presionado (nRow, nCol, nFlags) |
OnMouseMove | Mouse | Mouse movido sobre la superficie |
OnMouseUp | Mouse | Boton del mouse liberado |
| Plataforma | Implementacion |
| Windows | STATIC dibujado por el propietario (WM_PAINT + GDI/GDI+) |
| macOS | NSView (drawRect: + Core Graphics) |
| Linux | GtkDrawingArea (senal draw + Cairo) |
// Dibujo personalizado en un PaintBox
@ 10, 10 PAINTBOX oPaint OF oForm SIZE 300, 200
oPaint:OnPaint := { |oCanvas|
oCanvas:FillRect( 0, 0, 300, 200, CLR_WHITE )
oCanvas:SetPen( CLR_BLUE, 2 )
oCanvas:DrawRect( 20, 20, 280, 180 )
oCanvas:DrawEllipse( 50, 50, 250, 150 )
oCanvas:DrawText( 110, 90, "Hola Canvas!" )
}
2 Controles de Sistema
Timer proporciona disparo periodico de eventos para tareas en segundo plano, mientras que PaintBox ofrece un lienzo de dibujo libre. Ambos son esenciales para construir aplicaciones interactivas y dinamicas.