|
100 компонентов общего назначения Delphi 5
4.8.1. Отображение
хода выполнения длительных операций - компоненты ProgressBar и Gauge
Рассмотрим компоненты ProgressBar со страницы библиотеки
Win32 и Gauge со страницы Samples , предназначенные
для отображения в стиле Windows 95/98 хода процессов, занимающих заметное
время, например, копирования больших файлов, настройку приложения, установку
приложения на компьютере и т.п. Пример возможных вариантов отображения
хода процесса компонентами ProgressBar и Gauge приведен
на рис. 4.20.
Рис. 4.20
Пример отображения хода процесса компонентами ProgressВar
и Gauge
|
|
Основные свойства этих компонентов очень схожи, различаясь
только именами:
Max
| MaxValue
| Максимальное значение позиции (Position,
Progress), которое соответствует завершению отображаемого
процесса. По умолчанию задается в процентах — 100.
|
Min
| MinValue
| Начальное значение позиции (Position, Progress),
которое соответствует началу отображаемого процесса.
|
Position
| Progress
| Позиция, которую можно задавать по мере протекания
процесса, начиная со значения Min или MinValue в
начале процесса, и кончая значением Мах или MaxValue
в конце. Если минимальное и максимальное значения выражены в процентах,
то позиция — это процент завершенной части процесса.
|
Smooth
| —
| Непрерывное (при значении true) или дискретное
отображение процесса. На рис. 4.20 в горизонтальном компоненте
ProgressBar задано Smooth = true, а в вертикальном
— false.
|
Step
| —
| Шаг приращения позиции, используемый в методе StepIt.
Значение по умолчанию — 10.
|
Orientation
| —
| Ориентация шкалы компонента: pbHorizontal
— горизонтальная, pbVertical — вертикальная. Если задана
ориентация pbVertical, то компонент надо вытянуть по вертикали
(см. на рис. 4.20 компонент слева).
|
—
| ForeColor
| Цвет заполнения.
|
—
| ShowText
| Текстовое отображение процента выполнения на фоне
диаграммы.
|
—
| Kind
| Тип диаграммы: gkHorizontalBar — горизонтальная
полоса, gkVerticalBar — вертикальная полоса, gkPie
— круговая диаграмма, gkNeedle — секторная диаграмма, gkText
— отображение текстом.
|
Отображение хода процесса можно осуществлять, задавая
значение позиции — Position в ProgressBar или Progress
в Gauge. Например, если полная длительность процесса характеризуется
значением целой переменной Count (объем всех копируемых файлов,
число настроек, количество циклов какого-то процесса), а выполненная
часть — целой переменной Current, то задавать позицию диаграммы
в случае, если используются значения минимальной и максимальной позиции
по умолчанию (т.е. 0 и 100), можно операторами
ProgressBar1.Position := 100 * Current div Count;
или
Gauge1.Progress := 100 * Current div Count;
соответственно для ProgressBar
и Gauge. Можно поступать иначе: задать
сначала значение максимальной величины равным Count, а затем
в ходе процесса задавать позицию равной Current. Например:
Gauge1.MaxValue := Count;
Gauge1.Progress := Current;
Компонент ProgressBar имеет два метода, которыми тоже можно
воспользоваться для отображения процесса: StepBy(Delta: Integer)
— увеличение позиции на заданную величину Delta и StepIt
— увеличение позиции на один шаг, величина которого задается свойством
Step.
[Оглавление]
|
|