Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Ishodniki.Ru » Online книги » C++ Builder по шагам

Шаг 55 - Компонент TTabControl

Этот компонент gif/55_1.gif (112 b) не совсем тот, который мы видим во всевозможных окнах со вкладками. Вернее, чаще всего не тот. Данный компонент не содержит страниц, содержимое которых можно менять отдельно друг от друга. Фактически, он содержит всего одну страницу, с вкладками наверху. Для отображения нескольких страниц используйте TPageControl.

Собственно отображаемые вкладки перечисляются в свойстве Tabs как строки - подписи этих самых вкладок. Свойство Tabs - строковый списочный класс TStrings. "Универсальная" вещь ;).

Внешний вид этих самых вкладок определяется свойством TabStyle. Например, можно сделать их в виде кнопок или в виде "сплюснутых" (flat) кнопок. Кому-то нравится.

Практическое использование этого компонента заключается в следующем. Допустим, есть какой-то диалог или объект, который должен управляться пользователем. То есть его содержимое не меняется, а, скажем, только значение свойств типа TEdit::Text. Есть несколько путей решения - расположить кнопки, компонент TTabControl, TTreeView. Из них наиболее простым вариантом является этот компонент.

Другой вариант использования - выбор активных окон. Как бы пояснить. Видели Оперу (в смысле браузер)? Там внизу такая панелька flat была, на ней можно было просмотровые окна выбирать. В общем-то зря я в прошедшем времени, они там и есть :). Или более близкий пример - taskbar Windows'а. Конечно, и там и там не именно этот элемент управления использовался, а соостветственно WINDOWBAR и SysTabControl32.

Значит, свойства и методы.

TabHeight, TabWidth, TabPosition, HotTrack

Эти свойства контролируют внешний вид вкладок. TabHeight и TabWidth определяют высоту и ширину каждой вкладки. Свойство TabPosition говорит, как должны располагаться вкладки в панели TTabControl - снизу или вверху. HotTrack говорит о том, что подпись той вкладки, над которой находится курсор, должна выделяться (гореть синим цветом).

Style, MultiLine, RaggedRight, ScrollOpposite

Style млжет быть tsTabs, tsButtons, tsFlatButtons. Имена говорят сами за себя :). MultiLine определяет, нужно ли разделять вкладки на несколько рядов (когда true) или в одну строчку располагать с кнопками прокрутки. На мой вкус, последний вариант лучше. Когда RaggedRight установлено в false, вкладки автоматически растягиваются, подгоняются под ширину TabControl. Когда true, то не подгоняются. ScrollOpposite управляет отображением фоновых рядов в MultiLine режиме.

Tabs

Просто TStrings. Содержит пожписи к кнопкам.

Методы GetHitTestInfoAt

Описание:

THitTests __fastcall GetHitTestInfoAt(int X, int Y);,

Выдает описание THitTests точки элемента управления. Рассмотрим это множество более подробно в последующих Шагах.

IndexOfTabAt

Описание: int __fastcall IndexOfTabAt(int X, int Y);

Нравятся мне названия в VCL, всегда говорят то, что делают. Вот и сейчас. Достает индекс вкладки по ее позиции на экране. А что еще надо-то?

Вот и все основное.

Предыдущий шаг | Оглавление | Следующий шаг

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру