Способ 2
Code: |
uses Commctrl; const MaxProgress = 50; var pb: TProgressBar;
function GetPanelRect: TRect; begin SendMessage(Form1.StatusBar1.Handle, SB_GETRECT, 0, integer(@result)); end;
procedure TForm1.FormCreate(Sender: TObject); begin with StatusBar1.Panels.Add do begin Width := 100; Style := psOwnerDraw; end; with StatusBar1.Panels.Add do begin Width := 0; Text := 'abc'; end; Timer1.Enabled := false; Timer1.Interval := 50; pb := TProgressBar.Create(StatusBar1); pb.Visible := false; pb.Parent := StatusBar1; pb.BoundsRect := GetPanelRect; pb.Smooth := true; pb.Step := 1; end;
procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := true; pb.Position := 0; pb.Max := MaxProgress; pb.Visible := true; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Tag := Timer1.Tag + 1; if Timer1.Tag > MaxProgress then begin Timer1.Enabled := false; Timer1.Tag := 0; pb.Visible := false; end else pb.StepIt; end; |
Даниил Карапетян.
На сайте https://delphi4all.narod.ru Вы найдете еще более 100 советов по Delphi.
Email: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!