100 компонентов общего назначения библиотеки Delphi5


Различные варианты ползунков


Основное свойство компонента — Position. Это свойство можно задавать во время проектирования или программно во время выполнения. При перемещении пользователем ползунка можно прочитать значение Position, характеризующее позицию, в которую пользователь переместил ползунок. Для возможности такого чтения служит событие OnChange. В обработчике этого события можно прочитать значение Position и использовать его для управления каким-то компонентом.

Свойство Position — целое, значение которого может изменяться в пределах, задаваемых свойствами Min и Мах. По умолчанию Min = 0, Мах = 10, так что Position может принимать только 11 значений — от 0 до 10. Если задать большее значение Мах, соответственно увеличится количество возможных значений Position в диапазоне Min — Мах.

Свойство Orientation определяет ориентацию ползунка: trHorizontal — горизонтальная, trVertical — вертикальная.

Свойство TickMarks указывает размещение шкалы относительно компонента и может принимать значения: tmBottomRight — снизу или справа в зависимости от ориентации компонента (верхний и правый компоненты на Рисунок 5.3), tmTopLeft — сверху или слева в зависимости от ориентации компонента (нижний компонент на Рисунок 5.3), tmBoth — с обеих сторон (средний компонент на Рисунок 5.3).

Свойство TickStyle определяет способ изображения шкалы. Оно может принимать значения: tsAuto — автоматическая прорисовка шкалы, tsNone — отсутствие шкалы, tsManual — программное рисование шкалы с помощью метода SetTick(Value: Integer), который помещает метку шкалы в позицию, соответствующую величине Value. Метки, соответствующие началу и концу шкалы автоматически размещаются и в случае TickStyle = tsManual.

При TickStyle = tsAuto частота меток шкалы определяется свойством Frequency. Это свойство задает, сколько возможных значений Position лежит между метками. Например, если Frequency = 2, то метки будут соответствовать только каждому второму возможному значению позиции (такое значение Frequency задано в верхнем компоненте на Рисунок 5.3).

Свойства LineSize и PageSize определяют, насколько смещается ползунок, если пользователь управляет им с помощью соответственно клавиш со стрелками или клавишами PageUp и PageDown.

Свойства SelStart и SelEnd позволяют визуально выделить на шкале некоторый диапазон (см. средний компонент на Рисунок 5.3), который о чем-то говорит пользователю, например, рекомендуемый диапазон значений. При этом ничто не мешает пользователю выйти за пределы этого диапазона.

Похож на ползунок по своим функциям и компонент ScrollBar, хотя выглядит он иначе и предназначен по замыслу для других целей. Этот компонент представляет собой стандартную линейку прокрутки Windows. Однако, он может использоваться и для целей прокрутки (впрочем, многие оконные компоненты Delphi имеют собственные полосы прокрутки), и для управления, подобного компоненту TrackBar.

Основные свойства ScrollBarPosition, Min и Мах те же, что у компонента TrackBar. Свойство Kind, определяющее горизонтальное или вертикальное расположение полосы и принимающее соответственно значения sbHorizontal или sbVertical, аналогично свойству Orientation компонента TrackBar.

Имеются два свойства, отсутствующие у TrackBar: SmallChange и LargeChange. Они определяют соответственно «малый» сдвиг при щелчке на кнопке в конце полосы или нажатии клавиши со стрелкой, и «большой» сдвиг при перемещении на страницу щелчком рядом с бегунком или нажатии клавиш PageUp или PageDown.

Событие, соответствующее перемещению пользователем бегунка полосы прокрутки — OnScroll. В процедуру обработчика этого события передается по ссылке параметр ScrollPos — позиция бегунка, которую можно читать, но можно и изменять, и передается параметр ScrollCode, характеризующий вид перемещения бегунка. Этот параметр может иметь значения:

scLineUp, scLineDown«Малый» сдвиг: перемещение соответственно вверх или налево и вниз или вправо после нажатия кнопки полосы прокрутки или клавиши со стрелкой scPageUp, scPageDown«Большой» сдвиг: перемещение на страницу щелчком рядом с бегунком или нажатием клавиш PageUp или PageDown scPositionПользователь переместил и освободил бегунок scTrackПользователь перемещает бегунок scTop, scBottomБегунок перемещен соответственно в крайнюю верхнюю или левую позицию и в крайнюю нижнюю или правую позицию scEndScrollОкончание перемещения

В обработке события ScrollPos можно поместить операторы, перемещающие требуемую область формы или компонент, а можно поместить операторы, которые управляют некоторым компонентом, используя значение позиции бегунка ScrollPos.

Содержание раздела