ProgressBar

Иерархия наследования

          IComponent

          IControl

          IProgressBar

          ProgressBar

Описание

Компонент 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 не зависит от какого-либо системного компонента, поэтому в нем отсутствует подобный эффект "запаздывания".

Пример

Свойства компонента ProgressBar

  Имя свойства Краткое описание
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 определяет ширину компонента.

Методы компонента ProgressBar

  Имя метода Краткое описание
BringToFront Метод BringToFront располагает компонент на передний план.
ClientToScreen Метод ClientToScreen преобразовывает координаты точки, указанные относительно системы координат компонента, в экранные координаты.
DoDragDrop Метод DoDragDrop позволяет начать операцию перетаскивания.
GetImage Метод GetImage возвращает изображение компонента со всеми дочерними компонентами.
ScreenToClient Метод ScreenToClient преобразовывает экранные координаты точки в координаты, указываемые относительно системы координат компонента.
SendToBack Метод SendToBack располагает компонент на задний план.
SetFocus Метод SetFocus устанавливает фокус на данный компонент.
StepBy Метод StepBy осуществляет изменение позиции индикатора на величину, указанную во входном параметре.
StepIt Метод StepIt осуществляет изменение позиции индикатора на величину, установленную в свойстве StepSize .

События компонента ProgressBar

  Имя события Краткое описание
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 наступает при изменении положения ползунка вертикальной полосы прокрутки.

См. также:

Дополнительные компоненты