Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Tprogressbar. Индикаторы в дельфи 
:(
    Опции темы
SneG0K
Дата 15.5.2008, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 3
Всего: 54



Для представления числовых параметров в графическом виде в 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);


Это сообщение отредактировал(а) SneG0K - 16.5.2008, 22:50
PM WWW Skype   Вверх
Poseidon
Дата 16.5.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(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.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0632 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.