progressbar и smooth
Модератор: Модераторы
progressbar и smooth
По идее Smooth := True должен заставить отображать процесс непрерывно. Обычное поведение это показывать делением. Но в данном случае это не работает. Что я не так делаю?
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Если пробуете на windows, то все так. На остальных системах надо проверять.
Так ведь не отображает непрерывно... Может не так поняли. Обычно когда идет прогресс он отображается прямоугольниками. Это обычное явление в винде. А мне надо чтоб этих прямоугольников не было, а был сплошной прогрессбар. Мне надо сделать индикатор, и в нем удобнее использовать именно непрерывную полоску...
Может есть другой вариант сделать индикатор (ну кроме текстового)? пораскинул мозгами... что-то ничего не придумал кроме этого.
Может есть другой вариант сделать индикатор (ну кроме текстового)? пораскинул мозгами... что-то ничего не придумал кроме этого.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
PaintBox и заливать?
Можно пример?
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Код: Выделить всё
Procedure TForm1.Button1Click(Sender: TObject);
Var
aPaintBox: TPaintBox;
i: Integer;
Begin
aPaintBox := TPaintBox.Create(Form1);
aPaintBox.Parent := Form1;
aPaintBox.Canvas.Brush.Color := clBtnFace;
aPaintBox.Canvas.FillRect(aPaintBox.Canvas.ClipRect);
aPaintBox.Canvas.Brush.Color := clHighlight;
Application.ProcessMessages;
For i := 0 To aPaintBox.Width - 1 Do
Begin
aPaintBox.Canvas.FillRect(0, 0, i, aPaintBox.Height);
Application.ProcessMessages;
Sleep(50);
End;
end;
Procedure TForm1.SetValue(Const aID: Integer);
Const
aMin = 0;
aMax = 100;
Begin
With PaintBox1.Canvas Do
Begin
Caption := IntToStr(aID);
Brush.Color := clBtnFace;
FillRect(ClipRect);
Brush.Color := clHighlight;
FillRect(0, 0, Trunc((aID / aMax) * PaintBox1.Width), Height);
Caption := Caption + ':' + IntToStr(Trunc((aID / aMax)));
End;
End;
Как вариант ^_^
