18.3. КОМПОНЕНТЫ СТРАНИЦЫ WIN32

18.3.1. TTabControl - набор закладок

Компонент TTabControl представляет собой контейнер с закладками. Свойство Tabs определяет названия и количество закладок. Событие onchange. возникает при выборе новой закладки и позволяет управлять содержимым окна компонента. Для примера на рис. 18.22 показано использование компонента для управления календарем (с помощью TTabControl созданы закладки с названиями месяцев).

Свойства компонента:

property DisplayRect: TRect; | Определяет рабочую зону компонента, предназначенную для размещения других компонентов. Клиентская часть компонента содержит зону закладок и рабочую зону
property HotTrack: Boolean; | Если содержит True, название закладки автоматически выделяется цветом при перемещении над ней указателя мыши
property Images: TCustomImageList; | Определяет объект - хранилище изображений, которые будут прорисовываться слева от текста
property Multi-Line: Boolean; | Разрешает расположение закладок в несколько рядов. Если содержит False и закладки не умещаются в границах компонента, в зону закладок автоматически вставляются кнопки прокрутки
property OwnerDraw: Boolean; | Разрешает программную прорисовку закладок
property ScrollOpposite: Boolean; | Разрешает/запрещает перемещение неактивных рядов закладок на противоположную сторону компонента. Учитывается, если количество рядов больше 2
type TTabStyle = (tsTabs, tsButtons, tsFlatButtons) ; property Style: TTabStyle; | Определяет стиль закладок: tsTabs - обычные надписи; tsButtons -трехмерные кнопки; tsFlat Buttons - плоские кнопки
property TabHeight: Smallint; | Определяет высоту каждой закладки в пикселях. Если содержит 0, высота закладок выбирается автоматически в зависимости от выбранного шрифта
property Tablndex: Integer; | Определяет индекс выбранной закладки или содержит -1, если ни одна закладка не выбрана. Индексация начинается с 0
TTabPosition = (tpTop, tpBottom) ; property TabPosition: TTab Position; | Определяет положение зоны закладок относительно рабочей зоны компонента (tpTop - вверху, tpBottom - ВНИЗУ)
property Tabs: TStrings; | Определяет надписи на закладках и их количество. Чтобы добавить или удалить закладку, нужно добавить ее надпись к списку Tabs или удалить надпись из списка
property TabWidth: Smallint; | Определяет ширину каждой закладки в пикселях. Если содержит 0, ширина каждой закладки выбирается индивидуально в зависимости от длины ее надписи

Рис. 18.22. Управление календарем с помощью TTabControl

Помимо события OnChange, возникающего после выбора новой закладки, для компонента определено также событие OnChanging, которое возникает перед сменой закладки:

type TTabChangingEvent =

procedure (Sender: TObject;

var AllowChange: Boolean) of object;

property OnChanging: TTabChangingEvent;

Обработчик события может запретить выбор закладки, вернув в параметре Alliowchange значение False.