Ползунки и полосы прокрутки − компоненты 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.