Statusbar - ownerdraw

Top  Previous  Next

Basicamente, via programação, vc precisa de quatro passos :

 

1) Definir a propriedade Style como psOwnerDraw no painel (TPanel) do

StatusBar q deseja colocar a Progress;

 

2) Colocar um TProgressBar no Form e ajustar seu tamanho para o mesmo

tamanho do Painel(opcionalmente vc pode desenhar diretamente no Panel, ñ

recomendo isso no inicio);

 

3) No envento OnDrawPanel do StatusBar vc inclui uma atribuir como abaixo :

 

procedure TForm1.StatusBarDrawPanel(StatusBar: TStatusBar;

  Panel: TStatusPanel; const Rect: TRect);

begin

  with StatusBar.Canvas do

    case Panel.Index of

      indProgress: // constante com o indice do Painel

      begin

        pBar.PaintTo(Handle,Rect.Left,3);

      end;

      indLock: // inclui uma imagem qualquer, aqui um ícone

        if Assigned(dmValEntrada) and

           dmValEntrada.NivelSeguranca then

          ImageList.Draw(StatusBar.Canvas,Rect.Left-1, Rect.Top-2,indImagLock)

        else FillRect(Rect);

    end;

end;