Statusbar
alguem sabe como mudar o font.style de um statusbar.panel[x]
?
valeu
?
valeu
Pereiramarcos
Curtidas 0
Respostas
Micheus
04/07/2006
Provavelmente vc precisará utilizar o evento OnDrawPanel.
GOSTEI 0
Michael
04/07/2006
Olá colega!
Além de utilizar o evento [b:19d330ef13]OnDrawPanel[/b:19d330ef13], como sugerido pelo colega [b:19d330ef13]Micheus[/b:19d330ef13], vc deve fazer outras coisas tbm. Veja a seguir quais são.
1) Configurar a propriedade [b:19d330ef13]Style [/b:19d330ef13]dos painéis que vc deseja desenhar para [b:19d330ef13]psOwnerDraw[/b:19d330ef13];
2) Implementar no evento [b:19d330ef13]OnDrawPanel [/b:19d330ef13]do componente [b:19d330ef13]TStatusBar [/b:19d330ef13]a formatação desejada.
Veja um exemplo. Coloque um [b:19d330ef13]TStatusBar [/b:19d330ef13]em um form da VCL e adicione 3 painéis. Escreva algum texto no segundo e no terceiro (propriedade [b:19d330ef13]Text[/b:19d330ef13]). Defina a propriedade [b:19d330ef13]Style [/b:19d330ef13]de ambos para [b:19d330ef13]psOwnerDraw[/b:19d330ef13]. Por fim, codifique o evento [b:19d330ef13]OnDrawPanel [/b:19d330ef13]da barra de status como mostrado a seguir:
Veja um snapshot do exemplo acima:
[URL=http://imageshack.us][img:19d330ef13]http://img344.imageshack.us/img344/5697/snapshot0zj.png[/img:19d330ef13][/URL]
Tenha em mente que, por estar fazendo o desenho dos painéis manualmente, propriedades que modificam a aparência de cada um deles não irão funcionar, como [b:19d330ef13]Alignment[/b:19d330ef13], por exemplo. Vc deve implementar isso no código do evento [b:19d330ef13]OnDrawPanel[/b:19d330ef13], se for desejado/necessário.
[]´s
Além de utilizar o evento [b:19d330ef13]OnDrawPanel[/b:19d330ef13], como sugerido pelo colega [b:19d330ef13]Micheus[/b:19d330ef13], vc deve fazer outras coisas tbm. Veja a seguir quais são.
1) Configurar a propriedade [b:19d330ef13]Style [/b:19d330ef13]dos painéis que vc deseja desenhar para [b:19d330ef13]psOwnerDraw[/b:19d330ef13];
2) Implementar no evento [b:19d330ef13]OnDrawPanel [/b:19d330ef13]do componente [b:19d330ef13]TStatusBar [/b:19d330ef13]a formatação desejada.
Veja um exemplo. Coloque um [b:19d330ef13]TStatusBar [/b:19d330ef13]em um form da VCL e adicione 3 painéis. Escreva algum texto no segundo e no terceiro (propriedade [b:19d330ef13]Text[/b:19d330ef13]). Defina a propriedade [b:19d330ef13]Style [/b:19d330ef13]de ambos para [b:19d330ef13]psOwnerDraw[/b:19d330ef13]. Por fim, codifique o evento [b:19d330ef13]OnDrawPanel [/b:19d330ef13]da barra de status como mostrado a seguir:
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); begin with StatusBar do begin case Panel.Index of 1: begin Canvas.Font.Style := [fsBold]; Canvas.Font.Color := clRed; end; 2: begin Canvas.Font.Style := [fsItalic]; Canvas.Font.Color := clBlue; end; end; Canvas.FillRect(Rect); Canvas.TextOut(Rect.Left, Rect.Top, Panel.Text); end; end;
Veja um snapshot do exemplo acima:
[URL=http://imageshack.us][img:19d330ef13]http://img344.imageshack.us/img344/5697/snapshot0zj.png[/img:19d330ef13][/URL]
Tenha em mente que, por estar fazendo o desenho dos painéis manualmente, propriedades que modificam a aparência de cada um deles não irão funcionar, como [b:19d330ef13]Alignment[/b:19d330ef13], por exemplo. Vc deve implementar isso no código do evento [b:19d330ef13]OnDrawPanel[/b:19d330ef13], se for desejado/necessário.
[]´s
GOSTEI 0