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.

PropiedadTipoValor predet.Descripcion
nIntervalNumerico1000Intervalo del temporizador en milisegundos
lEnabledLogico.T.Si el temporizador esta activo
EventoCategoriaDescripcion
OnTimerAccionSe dispara cada vez que transcurre el intervalo
PlataformaImplementacion
WindowsSetTimer() / WM_TIMER
macOSNSTimer (scheduledTimerWithTimeInterval:)
Linuxg_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.

PropiedadTipoValor predet.Descripcion
oCanvasCanvas(auto)Objeto de superficie de dibujo con lapiz, brocha y fuente
nWidth, nHeightNumerico200, 200Tamano del area de dibujo
nClrPaneColorCLR_WHITEColor de fondo
EventoCategoriaDescripcion
OnPaintDibujoEl control necesita repintarse (recibe oCanvas)
OnClickAccionSuperficie pulsada
OnMouseDownMouseBoton del mouse presionado (nRow, nCol, nFlags)
OnMouseMoveMouseMouse movido sobre la superficie
OnMouseUpMouseBoton del mouse liberado
PlataformaImplementacion
WindowsSTATIC dibujado por el propietario (WM_PAINT + GDI/GDI+)
macOSNSView (drawRect: + Core Graphics)
LinuxGtkDrawingArea (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.

En Esta Página

TTimer CT_TIMER = 38 TPaintBox CT_PAINTBOX = 39