Элемент управления ProgressBar (индикатор продвижения) графически отображает состояние длительного процесса. Он служит для информирования пользователя о ходе выполнения операций, занимающих ощутимое время, - таких, как передача файла по сети, сложные математические расчеты и т. п., и представляет собой рамку (называемую счетчиком процесса), которая заполняется с той же скоростью, с какой выполняется операция.
Публикуется с разрешения авторов. (С) Андрей Колесов, Ольга Павлова Вперые опубликовано в электронной версии журнала "Мир ПК" N 3/99
Элемент управления ProgressBar (индикатор продвижения) графически отображает состояние длительного процесса. Он служит для информирования пользователя о ходе выполнения операций, занимающих ощутимое время, - таких, как передача файла по сети, сложные математические расчеты и т. п., и представляет собой рамку (называемую счетчиком процесса), которая заполняется с той же скоростью, с какой выполняется операция.
Доступ к информации о ходе выполнения операции обеспечивается в ProgressBar свойствами Min (начальное значение), Max (конечное значение) и Value (текущее значение). Например, если Min=1, а Max=100, то при Value=50 счетчик будет заполнен на 50%.
Необходимо позаботиться о том, чтобы значение Value ни в какой момент не могло превысить значение Max. Например, при загрузке файла, размер которого заранее известен, целесообразно задать этот размер в качестве значения Max, а затем периодически определять, какой объем уже загружен, и присваивать соответствующее значение свойству Value.
Если же конечное значение определить невозможно (как в случае с загрузкой файла неизвестной длины), использовать ProgressBar не следует. Можно заменить его элементом управления Animation из Visual Basic, который непрерывно показывает последовательность анимационных кадров до тех пор, пока не будет активизирован метод Stop в событии Terminate.
Индикатор продвижения принято выводить на экран только во время выполнения операции. До его начала и после окончания лучше сделать индикатор невидимым, установив для свойства Visible значение False; в начале выполнения следует изменить это значение на True.
Пример использования ProgressBar
Добавьте к пользовательской форме элемент управления Microsoft ProgressBar Control, version 5.0, после чего:
Добавьте к той же форме элемент управления CommandButton.
Для свойства Name элемента ProgressBar установите значение prgODE.
Для свойства Name элемента CommandButton установите значение cmdStart, а для свойства Caption - значение "Пуск".
Для свойства Caption пользовательской формы установите значение "Элемент управления ProgressBar".
В окне кода введите следующий текст:
Option Explicit Private Sub cmdStart_Click() Dim intCounter As Integer ' Инициализация массива Dim arrWorkArea(5000) As String prgODE.Visible = False ' Установка свойств Min и Max как ' верхней и нижней границ массива prgODE.Min = LBound(arrWorkArea) prgODE.Max = UBound(arrWorkArea) prgODE.Visible = True ' Инициализация свойства Value prgODE.Value = prgODE.Min ' Просмотр массива в цикле For intCounter = LBound(arrWorkArea) To UBound(arrWorkArea) ' Установка исходных значений для каждого элемента массива arrWorkArea(intCounter) = "Initial value" & intCounter ' Приращение свойства Value prgODE.Value = intCounter Next intCounter ' Все сделано, сделаем невидимым ProgressBar prgODE.Visible = False prgODE.Value = prgODE.Min End Sub
Запустите пример на выполнение. Продолжительностью "процесса" можно управлять, меняя размер массива (см. рисунок).