Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ползунок

Индикатор выполнения

Индикатор выполнения (полоса загрузки) представлен в VCL компонентом ProgressBar.

Он имеет всего несколько свойств, необходимых для использования по назначению:

· Min и Max - минимальное и максимальное значения диапазона индикатора. Задаются целочисленным значением, по умолчанию минимальное значение равно 0, а максимальное - 100;

· Position - позиция, или текущее значение индикатора. Значение этого параметра всегда должно находиться в границах диапазона, заданного свойствами Min и Max;

· Step - величина приращения при дискретном изменении значения методом StepIt. По умолчанию установлено в значение 10;

Кроме этих свойств, необходимых для непосредственного использования индикатора выполнения, так же предусмотрены свойства, влияющие на его отображение. Прежде всего, это свойство Orientation, которое влияет на пространственную ориентацию индикатора. Оно может принимать 2 значения - pbHorizontal и pbVertical, означающие размещение по горизонтали и вертикали.

Изменять значение индикатора можно несколькими способами. Прежде всего, можно устанавливать значение непосредственно через свойство Position: ProgressBar1.Position:=50;

Другой способ состоит в использовании уже упомянутого метода StepIt. При этом значение индикатора будет увеличено на величину, указанную в свойстве Step. Это удобно в тех случаях, когда, например, требуется выполнить заранее известное число операций (скажем, 5), примерно одинаковых по времени выполнения. В таком случае можно, оставив значения Min и Max принятыми по умолчанию, установить параметр Step в 20, и использовать метод StepIt для отображения хода выполнения:

ProgressBar1.Step:=20; for i:=1 to 5 do begin RunLongProc(i); ProgressBar1.StepIt; end;

В тех же случаях, когда требуется изменять значения индикатора на разные величины, то, помимо прямого указания нового положения при помощи свойства Position, можно использовать метод StepBy, передавая ему в качестве параметра значение, на которое должно увеличиться значение индикатора.

Ползунок представлен компонентом TrackBar, и расположен непосредственно по соседству с компонентом ProgressBar. Это соседство не случайно, ведь по своей сути они оба являются компонентами, работающими с диапазонами значений. В частности, как и ProgressBar, компонент TrackBar является прямым наследником класса TWinControl. Кроме того, он так же имеет свойства Min, Max и Position. Единственным отличием пока является то, что по умолчанию для свойства Max установлено значение 10. Еще одно общее свойство - Orientation - также позволяет изменить расположение ползунка с горизонтального на вертикальное.

Зато далее начинаются более существенные отличия. В частности, компонент TrackBar имеет целый ряд свойств, влияющих на его вид, в основном - на расположение его рисок. Все оставшиеся свойства этого компонента приведены в таблице:

Свойства компонента TrackBar
Свойство Тип значений Описание
Frequency Integer Определяет величину интервала между рисками
LineSize Integer Определяет величину приращения при управлении ползунком с клавиатуры клавишами-стрелками
PageSize Integer Определяет величину приращения при управлении ползунком с клавиатуры клавишами PageUp и PageDown
SelEnd Integer Определяет позицию окончания выбранного диапазона
SelStart Integer Определяет позицию начала выбранного диапазона
SliderVisible Boolean Определяет, должен ли отображаться сам ползунок
ThumbLength Integer Определяет размер ползунка
TickMarks TTickMark Определяет расположение рисок. Допустимые значения: tmBottomRight, tmTopLeft и tmBoth
TickStyle TTickStyle Определяет способ вывода рисок. Допустимые значения: tsNone, tsAuto и tsManual

Итак, из приведенных свойств, 3 отвечают за вывод рисок. Это Frequency, TickMarks и TickStyle. По умолчанию риски рисуются для каждого шага приращения (Frequency:=1), по нижней стороне полосы (TickMarks:=tmBottomRight). То, что они вообще выводятся - "заслуга" свойства TickStyle, имеющего по умолчанию значение tsAuto. Если бы оно было установлено в tsNone, то рисок вообще не было бы видно. В том же случае, если для него выбрано значение tsManual, то выделено было бы только начало и конец диапазона, а промежуточные позиции можно было бы выставить при помощи метода SetTick:

TrackBar1.TickStyle:=tsManual; TrackBar1.SetTick(4); TrackBar1.SetTick(7);

В данном случае у TrackBar1 было бы выставлено 4 метки - в начале, на 3-й позиции, на 7-й, и на последней. Метод SetTick - это единственный собственный метод компонента TrackBar, все же остальные его методы вполне стандартны, поскольку являются унаследованными от класса TWinControl.

Еще 2 свойства - SliderVisible и ThumbLength отвечают за сам ползунок. Так, если свойство SliderVisible установлено в ложь, то ползунка видно не будет. При этом, разумеется, пользователь ничего не сможет поделать с таким компонентом. А свойства LineSize и PageSize влияют на перемещение ползунка при помощи клавиатуры.

Для примера рассмотрим приложение, использующее 2 ползунка: один - для выбора значения, а другой - для установки коэффициента. Итоговое значение будет отображаться численно в заголовке окна и визуально - при помощи индикатора выполнения. Для этого создадим новое приложение и расположим на его главной форме 2 элемента TrackBar и 1 ProgressBar. Затем произведем следующие изменения при помощи инспектора объекта:

· Для компонента TrackBar1 установим свойство Orientation в trVertical, а свойствам Min, Max и Position назначим значения 6, 12 и 10, соответственно. Кроме того, установим для него свойства SelEnd и SelStart в 11 и 9, а TickMarks - в tmBoth;

· Для TrackBar2 ограничимся изменением значения его свойства ThumbLength с 20 на 15;

· Индикатор ProgressBar1 оставим вообще без изменений.

После всех проделанных операций разместим все эти компоненты на форме таким образом, чтобы TrackBar1 находился по левому краю формы, а оставшиеся 2 компонента - правее его. Кроме того, снабдим их все поясняющими надписями при помощи меток: для TrackBar1 - "коэффициент", для TrackBar2 - "перемещение", и для ProgressBar1 - "индикация".


Идея в том, чтобы пользователь, изменяя положение ползунка "перемещение", мог бы влиять на положение индикатора. При этом величина перемещения задается при помощи коэффициента.

Весь программный код данного приложения сводится к обработчику события onChange элемента TrackBar2. Чтобы создать такой обработчик, достаточно дважды щелкнуть по размещенному на форме объекту TrackBar2. Сам же код будет состоять из вычисления позиции для индикатора и вывода его числового значения в заголовке формы:

procedure TForm1.TrackBar2Change(Sender: TObject); begin

ProgressBar1.Position:=TrackBar2.Position*TrackBar1.Position; Form1.Caption:=IntToStr(ProgressBar1.Position); end;

<== предыдущая лекция | следующая лекция ==>
Коллекция картинок | Редактор горячих клавиш
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 606; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.