Компонент 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.