Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы ПП all-in-one.docx
Скачиваний:
10
Добавлен:
14.11.2019
Размер:
2.64 Mб
Скачать

Прокрутка в рабочей области формы

На практике часто бывает, что визуальная информация не умещается на форме целиком (даже если форма раскрыта на весь экран). Например, в на­шем случае можно загрузить картинку, размеры которой превосходят размеры формы в несколько раз. Лучшее, что можно предпринять в таком случае, — это организовать прокрутку (скроллинг) картинки в окне.

В области прокрутки видна только часть всей картины. Доступ к скрытым частям изображения происходит с помощью полос прокрутки. Выбирая кур­сором мыши их элементы, пользователь прокручивает изображение. Напри­мер, щелчки мыши на кнопках со стрелками прокручивают "информативные строки" изображения, а щелчки мыши на самой линейке прокрутки (но не на бегунке) — "информативные страницы" (понятия строки и страницы суще­ствуют для прокрутки и по вертикали, и по горизонтали). Перемещая бегунок, можно прокрутить изображение на любое число информативных строк или страниц.

Форма имеет встроенную поддержку прокрутки, благодаря чему реализуется просмотр содержимого формы при любом изменении ее размеров. Когда разме­ры или координаты управляющих элементов превышают размеры формы, форма создает одну или две полосы прокрутки и пользователь получает воз­можность прокручивать изображение. Полосы прокрутки представлены на форме составными свойствами HorzScrollBar и VertScrollBar. Свойство HorzScrollBar описы­вает горизонтальную полосу прокрутки, а VertScrollBar — вертикальную полосу. Их вложенные свойства кратко описаны в таблице 10.

Таблица 10. Составные свойства HorzScrollBar и VertScrollBar.

Свойство

Описание

Increment

Margin

Position

Range

Tracking

Visible

Величина "информативной строки" в пикселах.

Минимальный отступ прокручиваемых элементов от края области прокрутки.

Позиция бегунка на полосе прокрутки.

Виртуальный размер области прокрутки.

Если true, то прокрутка изображения происходит в процессе передвижения бегунка с помощью мыши.

Определяет, видна ли полоса прокрутки пользователю.

Наибольший интерес представляют вложенные свойства Tracking и Increment, Установка булева свойства Tracking в true обеспечивает прокрутку изображения в процессе передвижения бегунка с помощью мыши. Свойство Increment задает величину "информативной строки" в пикселах. Уменьшив его значение до 1, вы обеспечите более плавную прокрутку.

Прокрутка в отдельной прямоугольной области

Форма не позволяет организовать прокрутку в отдельной своей части. Например, в приложении для просмотра графических файлов необходимо организовать прокрутку картинки так, чтобы строка состоя­ния в прокрутке не участвовала. Форма этого сделать не позволяет. Здесь на помощь приходит компонент ScrollBox, реализующий отдельную область прокрутки. Он расположен в палитре компонентов на странице Additional (см. рис.).

Т аблица 4.11 содержит краткую характеристику его отличительных свойств.

Таблица 4.11. Важнейшие свойства компонента ScrollBox.

Свойство

Описание

Align

Autoscroll

BorderStyle

HorzScrollBar

VertScrollBar

Способ выравнивания области прокрутки в пределах владельца.

Если равно true, полосы прокрутки появляются и скрываются автоматически по мере необходимости.

Определяет, имеет ли область прокрутки рамку.

Определяет параметры и поведение горизонтальной полосы прокрутки (см. табл. 10).

Определяет параметры и поведение вертикальной полосы прокрутки (см. табл. 10).

Компонент ScrollBox характеризуется тем, что служит владельцем для других компонентов и обеспечивает прокрутку внутри своей прямоугольной области. Давайте поместим на него картинку (компонент Image), а область прокрутки расположим между меню и строкой состояния. В результате большие картин­ки будут прокручиваться уже не формой, а компонентом ScrollBox, и строка состояния останется на своем месте — прижатой к нижнему краю формы.

Шаг 42. Активизируйте на форме компонент Image и временно удалите его в буфер (команд меню Edit | Copy и Edit | Cut). Теперь опустите на форму компонент ScrollBox, выбрав его из палитры компонентов. Назовите новый компонент ScrollBox и подгоните его под всю незанятую область формы, установив свойство Align в значение alClient. Выберите цвет компонента, например, clInfoBk :

Шаг 43. Теперь вставьте из буфера компонент Image (команда меню Edit | Paste) и убедитесь, что он стал в левый верхний угол области прокрутки:

Скомпилируйте и запустите приложение, загрузите в него какую-нибудь картинку из каталога CBuilder\lmages\Splash\16color. Увеличивая и уменьшая окно, понаблюдайте за тем, как появ­ляются и исчезают полосы прокрутки между меню и строкой состояния (см. рис.).

Обратите внимание, что величина бегунков на полосах прокрутки зависит от соотношения видимой части и всего изображения. Это работает компонент ScrollBox без единой строчки кода.