Russian Belarusian English German Japanese Ukrainian

ProgressBar и CGauge - отображение хода длительных процессов

CuBook45

Компоненты ProgressBar, со страницы библиотеки Win32, и CGauge, со страницы Samples, предназначены для отображения хода процессов, занимающих заметное время, например, копирования больших файлов, настройку приложения, установку приложения на компьютере и т.п.
 
Основные свойства компонентов:
Свойство ProgressBar Свойство CGauge Описание
Max MaxValue Максимальное значение позиции (Position, Progress), которое соответствует завершению отображаемого процесса. По умолчанию задается в процентах - 100.
Min Min Value Начальное значение позиции (Position, Progress), которое соответствует началу отображаемого процесса.
Position Progress Позиция, которую можно задавать по мере протекания процесса, начиная со значения Min или Min Value в начале процесса, и кончая значением Мах или MaxValue в конце. Если минимальное и максимальное значения выражены в процентах, то позиция - это процент завершенной части процесса.
Smooth   Непрерывное (при значении true) или дискретное отображение процесса.
Step   Шаг приращения позиции, используемый в методе Steplt. Значение по умолчанию - 10.
Orientation   Ориентация шкалы компонента: pbHorizontal - горизонтальная, pbVertical - вертикальная. Если задана ориентация pbVertical, то компонент надо вытянуть по вертикали.
  ForeColor Цвет заполнения.
  ShowText Текстовое отображение процента выполнения на фоне диаграммы.
  Kind Тип диаграммы: gkHorizontalBar - горизонтальная полоса, gkVerticalBar - вертикальная полоса, gkPie - круговая диаграмма, gkNeedle - секторная диаграмма, gkText - отображение текстом.
Отображение хода процесса можно осуществлять, задавая значение позиции - Position в ProgressBar или Progress в CGauge. Например, если полная длительность процесса характеризуется значением целой переменной Count (объем всех копируемых файлов, число настроек, количество циклов какого-то процесса), а выполненная часть - целой переменной Current, то задавать позицию диаграммы в случае, если используются значения минимальной и максимальной позиции по умолчанию (т.е. 0 и 100), можно операторами:
ProgressBar1->Position = 100 * Current / Count;
CGauge1->Progress = 100 * Current / Count;
Можно поступать иначе, задать сначала значение максимальной величины равным Count, а затем в ходе процесса задавать позицию равной Current:
CGauge1->МахValue = Count;
//код программы
CGauge1->Progress = Current;
Компонент ProgressBar имеет два метода, которыми тоже можно воспользоваться для отображения процесса: StepBy (DeIta: Integer) - увеличение позиции на заданную величину Delta, и Steplt - увеличение позиции на один шаг, величина которого задается свойством Step. Например с использованием метода Steplt:
ProgressBar1->Max = Count;
ProgressBar1->Step = 1;
roqressBar1->StepIt();
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить