Buscar

Colocando uma progressbar dentro de uma statusbar

Código

{- Coloque uma StatusBar no form. - Adicione dois paineis na StatusBar (propriedade Panels).

- Ajuste as propriedades do primeiro painel conforme abaixo:

  Style = psOwnerDraw

  Width = 150

- Coloque uma ProgressBar no form e mude sua propriedade

  Visible para false.

- No evento OnDrawPanel da StatusBar digite o código abaixo:}



procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
begin
  { Se for o primeiro painel... }
  if Panel.Index = 0 then begin
  { Ajusta a tamanho da ProgressBar de acordo com
  o tamanho do painel }

  ProgressBar1.Width := Rect.Right - Rect.Left +1;
  ProgressBar1.Height := Rect.Bottom - Rect.Top +1;
  { Pinta a ProgressBar no DC (device-context) da StatusBar }
  ProgressBar1.PaintTo(StatusBar.Canvas.Handle, Rect.Left, Rect.Top);
  end;
end; //- Coloque um Button no form

//- Digite no evento OnClick do Button o código abaixo:


procedure TForm1.Button1Click(Sender: TObject);
var
  I: integer;
begin
  for I := ProgressBar1.Min to ProgressBar1.Max do begin
  { Atualiza a posição da ProgressBar }
  ProgressBar1.Position := I;
  { Repinta a StatusBar para forçar a atualização visual }
  StatusBar1.Repaint;
  { Aguarda 50 milisegundos }
  Sleep(50);
  end;
 
  { Aguarde 500 milisegundos }
  Sleep(500);
  { Reseta (zera) a ProgressBar }
  ProgressBar1.Position := ProgressBar1.Min;
  { Repinta a StatusBar para forçar a atualização visual }
  StatusBar1.Repaint;
end; //- Execute e clique no botão para ver o resultado.

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Componentes
Adicionada dia: 03/06/03
Por: Felipe Monteiro
Visualizada: 5704 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009