Nenhum comentário


Adicione em um formulário os seguintes componentes: um StatusBar, um ProgressBar (Win32) e um Button (Standard). Adicione painéis no StatusBar, clicando com o botão direito no componente e escolhendo Panels Editor. Altere a propriedade Style do primeiro painel para psOwnerDraw. No evento OnDrawPanel do StatusBar digite o seguinte código:

 

procedure TForm3.StatusBar1DrawPanel(StatusBar:

  TStatusBar; Panel: TStatusPanel; const Rect: TRect);

begin

  if Panel.Index = 0 then

  begin

    ProgressBar1.Width := Rect.Right - Rect.Left + 1;

    ProgressBar1.Height := Rect.Bottom - Rect.Top + 1;

    ProgressBar1.PaintTo(StatusBar.Canvas.Handle,

      Rect.Left, Rect.Top);

  end;

end;

 

No código anterior, verificamos se é o primeiro painel, pois podemos colocar o ProgressBar em um painel e utilizar os demais para outras tarefas. Agora no OnClick do botão adicione o seguinte código:

 

procedure TForm3.Button1Click(Sender: TObject);

var

  i: integer;

begin

  for i := ProgressBar1.Min to ProgressBar1.Max do

  begin

    ProgressBar1.Position := i;

    StatusBar1.Repaint;

    Sleep(10);

  end;

  ProgressBar1.Position := ProgressBar1.Min;

  StatusBar1.Repaint;

end;

 

No código, realizamos um laço entre o valor mínimo e o valor máximo da barra de progresso e incrementamos com valor da variável a sua posição (propriedade Position), repintamos o StatusBar e damos uma pausa (Sleep).

 

Depois do laço colocamos a posição da barra de progresso com o valor mínimo e repintamos novamente o StatusBar. Por fim, altere para False a propriedade Visible do ProgressBar. Rode a aplicação e teste a barra de progresso no painel do StatusBar (Figura).