Компонент ProgressBar предназначен для индикации процесса выполнения какой-либо задачи.
Для работы компонента необходимо в свойствах Min и Max задать минимальное и максимальное значения, которым будет соответствовать шкала индикатора. В свойстве Position задается текущее значение, отображаемое на индикаторе. Различные дополнительные свойства позволяют настроить внешний вид компонента.
При работе в операционной системе Windows 7, использующей тему оформления Aero, используется плавная отрисовка полосы индикатора процесса. Если значения меняются довольно быстро (в течение нескольких секунд), то создается эффект "запаздывания" отрисовки индикатора. Данное поведение не является ошибкой компонента ProgressBar, а является результатом работы системного компонента, который лежит в основе работы ProgressBar. Если процесс, индицируемый компонентом ProgressBar, выполняется в течение небольшого времени и требуется своевременная отрисовка индикатора, то существует следующий путь обхода: перед установкой в свойстве Position значения, отображаемого на индикаторе, данному свойству устанавливается немного увеличенное значение. Это приведет к моментальной отрисовке индикатора процесса. Для корректной отрисовки в конечной точке (при достижении значения Max) следует также увеличить максимальный допустимый диапазон компонента на небольшое значение, затем установить значение индикатора и после этого вернуть исходное максимальное допустимое значение.
Если изменение значения индикатора производится по таймеру, то для корректной отрисовки по описанному выше алгоритму, можно использовать следующий код на Fore:
Class TESTForm: Form
Button1: Button;
Timer1: Timer;
ProgressBar1: ProgressBar;
Pos: Integer;
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Begin
Pos := 0;
Timer1.Enabled := True;
End Sub Button1OnClick;
Sub Timer1OnTimer(Sender: Object; Args: IEventArgs);
Begin
Pos := Pos + 1;
If (Pos < ProgressBar1.Max) Then
ProgressBar1.Position := Pos + 1;
ProgressBar1.Position := Pos;
Else
ProgressBar1.Max := ProgressBar1.Max + 1;
ProgressBar1.Position := ProgressBar1.Max;
ProgressBar1.Max := ProgressBar1.Max - 1;
Timer1.Enabled := False;
End If;
End Sub Timer1OnTimer;
End Class TESTForm;
Также рекомендуется рассмотреть возможность отказа от использования компонента ProgressBar в пользу компонента PPProgressBar. PPProgressBar не зависит от какого-либо системного компонента, поэтому в нем отсутствует подобный эффект "запаздывания".
Имя свойства | Краткое описание | |
Align | Свойство Align определяет, как поведет себя компонент при изменении размеров содержащего его родительского компонента. | |
AllowDrag | Свойство AllowDrag определяет возможность взять у компонента перетаскиваемый объект. | |
AllowDrop | Свойство AllowDrop определяет, будет ли возможность у компонента принять перетаскиваемый объект. | |
Anchors | Свойство Anchors возвращает настройки, определяющие в процентном соотношении изменение размеров текущего компонента при изменении размеров родительского компонента. | |
BorderStyle | Свойство BorderStyle определяет стиль границы компонента. | |
Brush | Свойство Brush определяет кисть, используемую для заливки области компонента. | |
ClientHeight | Свойство ClientHeight используется для получения или задания высоты клиентской области компонента. | |
ClientWidth | Свойство ClientWidth используется для получения или задания ширины клиентской области компонента. | |
Color | Свойство Color определяет цвет фона компонента. | |
ComponentCount | Свойство ComponentCount возвращает количество дочерних компонентов. | |
Components | Свойство Components возвращает дочерний компонент. | |
Cursor | Свойство Cursor определяет вид курсора над компонентом. | |
Data | Свойство Data предназначено для хранения любых пользовательских данных. | |
Enabled | Свойство Enabled определяет доступность компонента для пользователя. | |
Focused | Свойство Focused возвращает True, если фокус установлен на данном компоненте. | |
Font | Свойство Font определяет множество характеристик, описывающих шрифт, используемый при отображении текста. | |
Height | Свойство Height определяет высоту компонента. | |
HelpContext | Свойство HelpContext определяет уникальный индекс раздела контекстно-зависимой справки для данного компонента. | |
Hint | Свойство Hint определяет текст подсказки для компонента. | |
Left | Свойство Left определяет координату левого края компонента. | |
Max | Свойство Max определяет максимальное значение для индикатора выполнения. | |
Min | Свойство Min определяет минимальное значение для индикатора выполнения. | |
Name | Свойство Name определяет наименование компонента. | |
Orientation | Свойство Orientation определяет способ размещения индикатора. | |
Parent | Свойство Parent определяет родительский компонент. | |
ParentColor | Свойство ParentColor определяет, будет ли для компонента заимствован цвет родительского компонента. | |
ParentFont | Свойство ParentFont определяет, будет ли для компонента использоваться шрифт родительского компонента. | |
ParentShowHint | Свойство ParentShowHint определяет условие отображения всплывающей подсказки. | |
PopupMenu | Свойство PopupMenu определяет контекстное меню, которое будет появляться по щелчку дополнительной кнопки мыши на компоненте. | |
Position | Свойство Position определяет текущее положения индикатора выполнения. | |
Scrolls | Свойство Scrolls возвращает параметры полос прокрутки компонента. | |
ShowHint | Свойство ShowHint включает и выключает показ всплывающего окна подсказки для компонента. | |
Smooth | Свойство Smooth определяет вид индикатора. | |
StepSize | Свойство StepSize определяет величину, на которую будет смещен индикатор при вызове метода StepIt . | |
TabOrder | Свойство TabOrder определяет позицию компонента в последовательности табуляции. | |
TabStop | Свойство TabStop определяет признак необходимости компоненту получать фокус при нажатии кнопки «TAB». | |
Tag | Свойство Tag не используется компилятором. Пользователь может изменить значение свойства Tag и использовать его по своему усмотрению. | |
Text | Свойство Text определяет строку, идентифицирующую компонент для пользователя. | |
Top | Свойство Top определяет координату верхнего края компонента. | |
Visible | Свойство Visible определяет видимость компонента во время выполнения. | |
Width | Свойство Width определяет ширину компонента. |
Имя метода | Краткое описание | |
BringToFront | Метод BringToFront располагает компонент на передний план. | |
ClientToScreen | Метод ClientToScreen преобразовывает координаты точки, указанные относительно системы координат компонента, в экранные координаты. | |
DoDragDrop | Метод DoDragDrop позволяет начать операцию перетаскивания. | |
GetImage | Метод GetImage возвращает изображение компонента со всеми дочерними компонентами. | |
ScreenToClient | Метод ScreenToClient преобразовывает экранные координаты точки в координаты, указываемые относительно системы координат компонента. | |
SendToBack | Метод SendToBack располагает компонент на задний план. | |
SetFocus | Метод SetFocus устанавливает фокус на данный компонент. | |
StepBy | Метод StepBy осуществляет изменение позиции индикатора на величину, указанную во входном параметре. | |
StepIt | Метод StepIt осуществляет изменение позиции индикатора на величину, установленную в свойстве StepSize . |
Имя события | Краткое описание | |
OnBeginDrag | Событие OnBeginDrag для компонента наступает, когда пользователь начинает перетаскивать объект от компонента. | |
OnClick | Событие OnClick наступает, если пользователь щёлкнул в области компонента. | |
OnDblClick | Событие OnDblClick наступает, если пользователь дважды щёлкнул в области компонента. | |
OnDragDrop | Событие OnDragDrop для компонента наступает, когда пользователь отпускает над ним перетаскиваемый объект. | |
OnDragEnter | Событие OnDragEnter наступает, когда перетаскиваемый объект входит в границы данного компонента. | |
OnDragLeave | Событие OnDragLeave наступает, когда перетаскиваемый объект выходит за границы данного компонента. | |
OnDragOver | Событие OnDragOver для компонента наступает, когда пользователь протаскивает над ним перетаскиваемый объект. | |
OnEnter | Событие OnEnter наступает в момент получения фокуса компонентом. | |
OnExit | Событие OnExit наступает в момент потери фокуса компонентом. | |
OnHScroll | Событие OnHScroll наступает при изменении положения ползунка горизонтальной полосы прокрутки. | |
OnKeyDown | Событие OnKeyDown наступает, если компонент находится в фокусе и производится нажатие на клавиатуру. | |
OnKeyPress | Событие OnKeyPress наступает, если компонент находится в фокусе, при нажатии пользователем символьной клавиши. | |
OnKeyPreview | Событие OnKeyPreview наступает перед каждым событием, связанным с нажатием клавиш. | |
OnKeyUp | Событие OnKeyUp наступает, если компонент находится в фокусе, при отпускании пользователем любой, ранее нажатой клавиши. | |
OnMouseDown | Событие OnMouseDown наступает, если указатель находится в области компонента и была нажата любая кнопка мыши. | |
OnMouseEnter | Событие OnMouseEnter наступает в момент входа курсора мыши в область компонента. | |
OnMouseHover | Событие OnMouseHover наступает при задержке курсора мыши в области компонента. | |
OnMouseLeave | Событие OnMouseLeave наступает в момент выхода курсора мыши за пределы области компонента. | |
OnMouseMove | Событие OnMouseMove наступает при перемещении курсора мыши над компонентом. | |
OnMouseUp | Событие OnMouseUp наступает при отпускании кнопки мыши, когда указатель находится в области компонента. | |
OnMouseWheel | Событие OnMouseWheel наступает, если компонент находится в фокусе при вращении колеса мыши. | |
OnVScroll | Событие OnVScroll наступает при изменении положения ползунка вертикальной полосы прокрутки. |
См. также: