Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Tprogressbar. Индикаторы в дельфи


Автор: SneG0K 15.5.2008, 21:21
Для представления числовых параметров в графическом виде в Delphi реализован компонент ProgressBar, расположенный на вкладке Win32 палитры компонентов.
 Компонент ProgressBar предназначен для отображения целочисленного значения, как промежутка между каким-либо интервалом. Но чаще используется для отображения процесса выполнения каких-либо продолжительных действий, происходящих в программе.
 
 иерархия класса такого
 
 TObject
     |
 TPersistent
     |
 TComponent
     |
 TControl
     |
 TWinControl
     |
TProgressBar
 
Естественно что TProgressBar обладает большинством свойств многих других визуальных компонентов, которые (в большинстве случаев) тоже наследуют класс TWinControl.

 Компонент создается автоматически при накладывании на форму, но иногда требуется его создавать самому. Это делается (как и везде собственно) конструктором Create:

Код

 constructor Create(AOwner: TComponent); override;


 После создания компонента, нас интересуют его размеры. Свойство Heigth отвечает за ширину обьекта, а свойство Width, за высоту. Оба параметра целочисленные:

Код

 property Height;
 property Width;


 А так же его размещение на форме. За это отвечают параметры Left (Количество пикселей от левой границы формы) и Top (количество пикселей от верхней границы формы):
Код

 property Left;
 property Top;


 Естественно обьект можно и спрятать. Логический параметр Visible:

Код

 property Visible;


 Интервал задается свойствами Min и Max, а расположение позиции ползунка в интервале свойством Position:
 
Код

 property Min:Integer;
 property Max:Integer;
 property Position:integer;

 
 
 Компонент TProgressBar представляет собой горизонтальную или вертикальную полосу, заполняемую по мере развития отображаемого процесса. За это отвечает метод Orientation, который може принимать значение pbHorisontal (горизонтальном) или, соответственно, pbVertical (вертикальном):
 
Код

 property Orientation:TProgressBarOrientation;

 
 Свойство Smooth определяет непрерывное (значение True) или дискретное (значение False) отображение процесса:
Код

property Smooth:Boolean;



Для изменения позиции ProgressBar во время выполнения программы, можно использовать свойство Position:

Код

ProgressBar.Position:= 10;


Еще в компоненте предусмотрен метод шаг. Шаг задается свойством Step, а для перемещения ползунка по шагу используется метод StepIt:
Код


property Step:Integer;
procedure StepIt;


Но если свойство Step имеет отрицательное значение, то значение свойства Position будет уменьшаться.
Еще предусмотрена процедура смещения индикатора на произвольное значение StepBy:

Код

procedure StepBy(Delta:Integer);

Автор: Poseidon 16.5.2008, 13:51
Цитата(SneG0K @  15.5.2008,  21:21 Найти цитируемый пост)
либо состоящей из треугольников
  smile

Добавлено через 13 минут и 13 секунд
TProgressBar - компонент


Предназначен для отображения хода процессов, занимающих заметное время

Модуль comctrls

Описание
Компонент TProgressBar предназначен для отображения в стиле Windows 95/98 хода процессов, занимающих заметное время, например, копирования больших файлов, настройку приложения, установку приложения на компьютере и т.п. Другой компонент, выполняющий аналогичные функции - TGauge.

Компонент TProgressBar представляет собой горизонтальную или вертикальную полосу, заполняемую по мере развития отображаемого процесса.

Основное свойство компонента - Position. Это позиция, которую можно задавать по мере протекания процесса, начиная со значения Min в начале процесса, и кончая значением Max в конце. Свойство Orientation определяет горизонтальную или вертикальную ориентацию шкалы компонента. Свойство Smooth определяет непрерывное или дискретное отображение процесса.

Отображение хода процесса можно осуществлять, задавая значение позиции - Position. Например, если полная длительность процесса характеризуется значением целой переменной Count (объем всех копируемых файлов, число настроек, количество циклов какого-то процесса), а выполненная часть - целой переменной Current, то задавать позицию диаграммы в случае, если используются значения минимальной и максимальной позиции по умолчанию (т.е. 0 и 10), можно оператором

Код

ProgressBar1.Position:=10 * Current div Count;


Можно поступать иначе: задать сначала значение максимальной величины равным Count, а затем в ходе процесса задавать позицию равной Current. Например:

Код

ProgressBar1.Max:=Count;
...
ProgressBar1.Position:= Current;


Компонент ProgressBar имеет два метода, которыми тоже можно воспользоваться для отображения процесса: StepBy - увеличение позиции на заданную величину Delta,  и StepIt - увеличение позиции на один шаг, величина которого задается свойством Step.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)