Ползунки и полосы прокрутки − компоненты TrackBar и ScrollBar

Компонент TrackBar представляет собой элемент управления в виде ползунка, который пользователь может перемещать курсором мыши или клавишами во время выполнения. Таким образом, пользователь может управлять какими-то процессами: громкостью звука, размером изображения и т.п.

Задание 4. Изучить ползунки и полосы прокрутки.

1.Начните новый проект. В надпись формы внесите Ползунки, на форму перенесите четыре компонента TrackBar, три − по вертикали, друг под другом, четвертый − справа.

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

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

2.Для верхнего ползунка задайте Max = 5.

3.Свойство Orientation определяет ориентацию ползунка (по умолчанию − trHorizontal − горизонтальная). Для правого ползунка задайте trVertical − вертикальная.

4.Свойства SelStartи SelEnd позволяют визуально выделить на шкале некоторый диапазон значений. Для среднего ползунка задайте соответственно 4 и 8.

5.Свойство TickMarks указывает размещение шкалы относительно компонента. Для верхнего и правого задайте tmBottomRight − снизу или справа (в зависимости от ориентации ползунка), для нижнего − tmTopLeft− сверху или слева в зависимости от ориентации ползунка, для среднего − tmBoth −с обеих сторон.

6.Выполните приложение. Убедитесь, что ползунки можно перемещать как мышью, так и клавишами.

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

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

7.В верхнем ползунке установите Max =10, при TickStyle = tsAuto установите Frequency =2. Выполните приложение. Убедитесь в новом варианте работы верхнего ползунка.

Компонент ScrollBar(полоса или линейка прокрутки) по своим функциям похож на ползунок. Основные свойства ScrollBar − Position, Min и Max те же, что у TrackBar. Свойство Kind, определяющее горизонтальное или вертикальное расположение полосы и принимающее соответственно значения sbHorizontal или sbVertical, аналогично свойству Orientation ползунка. Имеются два свойства, отсутствующие у TrackBar: SmallChangeи LargeChange(по умолчанию они равны 1). Они определяют соответственно «малый» сдвиг при щелчке на кнопке в конце полосы или при нажатии клавиши со стрелкой, и «большой» сдвиг при перемещении на страницу щелчком рядом с бегунком или нажатием клавиш PageUp или PageDown.

8.Перенесите на форму две полосы прокрутки ScrollBar. Одну из них расположите горизонтально, другую − вертикально. Увеличьте, насколько возможно, длины полос. Для горизонтально расположенной полосы установите SmallChange =3, LargeChange = 5.

9.Выполните приложение. Убедитесь в правильном функционировании полос прокрутки.

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

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

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

Наши рекомендации