Controles de Sistema
A aba Sistema contem controles nao visuais e de baixo nivel que fornecem funcionalidade de temporizacao e superficies de desenho personalizado.
TTimer CT_TIMER = 38
Componente nao visual que dispara um evento em intervalos regulares. Usado para tarefas periodicas como sondagem, animacoes, salvamento automatico e atualizacoes de status. Nao aparece no formulario em tempo de execucao.
| Propriedade | Tipo | Padrao | Descricao |
nInterval | Numerico | 1000 | Intervalo do temporizador em milissegundos |
lEnabled | Logico | .T. | Se o temporizador esta ativo |
| Evento | Categoria | Descricao |
OnTimer | Acao | Disparado a cada intervalo decorrido |
| Plataforma | Implementacao |
| Windows | SetTimer() / WM_TIMER |
| macOS | NSTimer (scheduledTimerWithTimeInterval:) |
| Linux | g_timeout_add() |
// Salvamento automatico a cada 30 segundos
TIMER oTimer OF oForm INTERVAL 30000
oTimer:OnTimer := { || SalvarAutomatico() }
// Desativar temporizador temporariamente
oTimer:lEnabled := .F.
// Reativar com intervalo mais rapido
oTimer:nInterval := 5000
oTimer:lEnabled := .T.
TPaintBox CT_PAINTBOX = 39
Superficie de desenho personalizado. Fornece um objeto Canvas para pintura livre com linhas, retangulos, elipses, texto e imagens. O evento OnPaint e chamado sempre que o controle precisa ser redesenhado.
| Propriedade | Tipo | Padrao | Descricao |
oCanvas | Canvas | (auto) | Objeto de superficie de desenho com caneta, pincel e fonte |
nWidth, nHeight | Numerico | 200, 200 | Tamanho da area de desenho |
nClrPane | Cor | CLR_WHITE | Cor de fundo |
| Evento | Categoria | Descricao |
OnPaint | Desenho | Controle precisa ser repintado (recebe oCanvas) |
OnClick | Acao | Superficie clicada |
OnMouseDown | Mouse | Botao do mouse pressionado (nRow, nCol, nFlags) |
OnMouseMove | Mouse | Mouse movido sobre a superficie |
OnMouseUp | Mouse | Botao do mouse solto |
| Plataforma | Implementacao |
| Windows | STATIC com desenho proprio (WM_PAINT + GDI/GDI+) |
| macOS | NSView (drawRect: + Core Graphics) |
| Linux | GtkDrawingArea (sinal draw + Cairo) |
// Desenho personalizado em um 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, "Ola Canvas!" )
}
2 Controles de Sistema
Temporizador fornece disparo periodico de eventos para tarefas em segundo plano, enquanto PaintBox oferece uma
superficie de desenho livre. Ambos sao essenciais para construir aplicacoes interativas e dinamicas.