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;