Ferramentas Pessoais
Você está aqui: Página Inicial Programação ObjectPascal Customização da Barra de Status

Customização da Barra de Status

por Alan Candido última modificação 18/03/2010 02:52

É muito gostoso usar a criatividade e darmos um "charme" em nossos aplicativos. Use este artigo para dar um "tapa" na sua barra de estatus.

A Idéia

A barra de status pode ser dividida em paineis. Onde cada painel, pode ter um visual totalmente diferentes dos demais. O truque, se é que é podemos chamar assim, é setar a propriedade do painel, via editor de paineis, Style para psOwnerDraw. Isto indica ao Delphi, que você terá o controle de como fazer este painel. Esta propriedade, sozinha, somente indica que o desenho será feito por você. O código que será executado para fazer o paínel, deverá ser associado ao evento OnDrawPanel.

A Implementação

Selecione o formulário que e acrescente um TStatusBar, selecione-a e efetue um duplo-click. O editor de paineis aparecerá. Acrescente quantos paineis forem necessários. Para aqueles que você deseja desenhar, ajuste a propriedade Style com psOwnerDraw. Volte a TStatusBar e no Object Inspector, na página Events, selecione OnDrawPanel, efetuando um duplo-click, algo semelhante ao código abaixo aparecerá.

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);
begin
end;

Insira, entre os comandos Begin..End, o código de teste do painel a ser desenhado.

    // Aqui determinamos qual é o painel que será "desenhado"
    if Panel.Index = PAN_FAROL then //Acostume-se a utilizar constantes para acessar e testar indices, quando possivel
    with StatusBar1.Canvas do
    begin
       // Ajusta a cor e pinta o fundo
       Brush.Color := ACores[nColor];
       FillRect(Rect);
       // Ajusta a cor da fonte e apresenta um texto
       Font.Color := clBlack;
       TextOut(Rect.left + 4, Rect.top + 2, TimeToStr(Now));
    end else if Panel.Index = PAN_ICON then
    with StatusBar1.Canvas do
    begin
       // Desenha o icone da aplicação
       StretchDraw(Rect, Image1.Picture.Icon);
    end;
O uso de constantes, funções de conversão de data e outros artifícios, são usados pensando em uma internacionalização do aplicativo.

Neste exemplo, estamos verificando qual o painel que será desenhado, através da propriedade Index do TPanel e usando o Canvas da barra de status, efetuamos o desenho deste painel. Que consistem em um fundo de cor definida pelo array e com a hora impressa em preto. Já para o painel PAN_ICON, efetuamos a apresentação de um icone.


Conteúdo relacionado
Ações do documento
Acessar


Esqueceu sua senha?