Компонент TTabControl позволяет создавать на форме панель с управляющим элементом типа кнопки со многими положениями (закладками). Внешне этот компонент выглядит так же, как TPageControl, но в отличие от него страниц не несколько, а всего одна. И надо написать соответствующие обработчики событий OnChanging и OnChange, чтобы определить, что именно должно происходить на панели при переключениях закладок пользователем.
Свойство Tabs типа TStrings определяет число положений переключателя и надписи на его закладках. Свойство Style определяет стиль отображения компонента: tsTabs - закладки, tsButtons - кнопки, tsFlatButtons - плоские кнопки. Свойство MultiLine определяет, будут ли закладки размещаться в несколько рядов, если все они не помещаются в один ряд. Примером компонента с MultiLine = false является палитра компонентов в Delphi. Свойство TabPosition определяет место расположения ярлычков закладок: tpBottom - внизу, tpLeft - слева, tpRight - справа и tpTop - вверху компонента (это значение по умолчанию). Свойства TabHeight и TabWidth определяют высоту и ширину ярлычков закладок в пикселях. Если значения этих параметров заданы равными 0, то размеры ярлычков определяются автоматически по размерам надписей на них. Свойство Images дает ссылку на компонент TImageList, который содержит список изображений на ярлычках. Свойство ScrollOpposite определят способ перемещения закладок при размещении их в несколько рядов. Свойство - MultySelect разрешает множественный выбор закладок. Если это свойство установлено в true, то в обработчиках событий надо описать реакцию на такой выбор пользователя.
Текущее состояние переключателя определяется свойством TabIndex. Вы можете установить его в процессе проектирования, чтобы определить исходное состояние переключателя. А затем в обработчиках событий OnChanging и OnChange можете читать это свойство, чтобы определить, что именно выбрал пользователь.
Основные события компонента - OnChanging и OnChange. Первое из них происходит после щелчка пользователя на новой закладке. При этом в обработчик события передается по ссылке параметр AllowChange - разрешение переключения. Если в обработчике задать AllowChange = false, то переключение не произойдет. Событие OnChange происходит сразу после переключения.
Применять компонент TabControl имеет смысл в тех приложениях, в которых нужен многопозиционный переключатель. Вы можете, конечно, имитировать с помощью TabControl поведение, аналогичное компоненту PageControl. Для этого достаточно, например, расположить в пределах TabControl две закрывающие друг друга панели и в обработчик события OnChange вставить оператор:
if TabControl1.TabIndex=0
then Panel2.Visible:=false
else Panel2.Visible:=true;
Если Panel2 - верхняя панель, то при выборе первой закладки (TabIndex = 0) она будет делаться невидимой и под ней будет проступать нижняя панель.
Но подобная имитация PageControl не имеет смысла, так как проще использовать сам компонент PageControl. А TabControl надо применять, если требуются какие-то перестроения в рамках одной панели.