18.6.1. TTabSet - набор закладок

Компонент TTabSet представляет собой набор закладок. В отличие от компонента TTabControl он не может служить контейнером для размещения других компонентов и поэтому обычно работает совместно с каким-либо компонентом-контейнером (чаще всего - с TNotebook).

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

property AutoScroll: Boolean;

Разрешает/запрещает появление стрелок прокрутки, если закладки не умещаются целиком в границах компонента

property BackgroundColor: TColor;

Определяет цвет фона закладок

property DitherBackground: Boolean;

Если содержит True, уменьшается насыщенность цвета BackgroundColor

property EndMargin: Integer;

Отступ закладок от правой границы компонента

property Firstlndex: Integer;

Содержит индекс самой левой закладки, целиком видимой на экране

property SelectedColor: TColor;

Содержит цвет выбранной закладки (обычно совпадает с цветом связанного компонента-контейнера)

property StartMargin: Integer;

TTabStyle = (tsStandard, tsOwnerDraw);

Отступ закладок от левой границы компонента

property Style: TTabStyle;

Определяет способ прорисовки закладок: tsStandard - автоматический; tsOwnerDraw - программный

property TabHeight: Integer,

Определяет высоту закладок в пикселях

property Tablndex: Integer;

Содержит индекс выбранной закладки (индексация начинается с 0)

property UnselectedColor: TColor;

Определяет цвет невыбранных закладок

property VisibleTabs: Integer;

Содержит количество закладок, целиком видимых в границах компонента

Методы компонента:

function ItemAtPos(Pos: TPoint): Integer;

Возвращает индекс закладки, которой принадлежит точка Pos

function ItemRect(Item: Integer): TRect;

Возвращает прямоугольник прорисовки закладки с индексом item

procedure SelectNext(Direction: Boolean) ;

Смещает выбор к соседней закладке: Direction - направление смещения (True - вправо)

Для компонента определены следующие события:

TTabChangEvent = procedure (Sender: TObject; NewTab: Integer; var AllowChange: Boolean) of object;

Возникает перед сменой выбранной закладки: NewTab - индекс закладки, которая будет выбрана. В параметре AllowChange обработчик должен разрешить или запретить выбор закладки

property OnChange: TTabChangingEvent; TDrawTabEvent = procedure(Sender: TObject; TabCanvas: TCanvas; R: TRect; Index: Integer; Selected: Boolean) of object;

Возникает при необходимости прорисовать закладку с индексом index, если она имеет стиль tsOwnerDraw: TabCanvas - канва для прорисовки; Selected - содержит True для выбранной закладки

property OnDrawTab: TDrawTabEvent; TMeasureTabEvent = procedure(Sender: TObject; Index: Integer; var TabWidth: Integer) of object-property OnMeasureTab: TMeasureTabEvent;

Возникает перед прорисовкой закладки с индексом index, если она имеет стиль tsOwnerDraw. В параметре TabWidth обработчик должен вернуть ширину закладки

 Как уже говорилось, часто компонент TTabSet связывается с компонентом TNotebook для организации многостраничного блокнота с закладками. В этом случае в обработчике событий OnChange или

OnClick компонента следует предусмотреть изменение текущей страницы блокнота. Например:

procedure TFormI.TabSetlChange(Sender: TObject;

NewTab: Integer;

var AllowChange: Boolean);

begin

AllowChange := True; // Разрешаем смену закладки

Notebookl.Pagelndex := NewTab // Меняем страницу блокнота

end;