100 Delphi компонента - TabControl, PageControl, TabSet, TabbedNoteBook, NoteBook

Компонентът има редица методи, които ви позволяват да работите със страници, да ги създавате, унищожавате, превключвате. Потърсете ги във вградената помощ на Delphi. Основните компонентни събития саOnChangeиOnChange. Първият от тях се случва точно преди превключване към друга страница, след като потребителят щракне върху нов маркер. В този случай параметърътAllowChangeсе предава на манипулатора на събитие чрез препратка — разрешението за превключване. Ако зададетеAllowChange = falseв манипулатора, тогава превключването няма да се случи. СъбитиетоOnChangeсе задейства веднага след превключването.

Помислете сега за компонентаTabControl. Външно този компонент изглежда по същия начин катоPageControlи има много от същите свойства:Style,MultiLine,TabPosition,TabHeight,TabWidth,Images,ScrollOpposite, същите събития:OnChangingиOnChange. Но основната му разлика отPageControlе, чеTabControlняма много панели (страници). Компонентът е една страница с бутон за управление с много позиции. И трябва да напишете подходящите манипулатори на събитияOnChangingиOnChange, за да определите какво точно трябва да се случи на панела, когато потребителят превключва раздели. Компонентът има още едно свойство -MultySelect, което позволява многократен избор на отметки. Ако това свойство е зададено наtrue, тогава в манипулаторите на събития е необходимо да се опише реакцията на такъв потребителски избор.

Има смисъл да използвате компонентаTabControlв тези приложения, които се нуждаят от превключвател. Можете, разбира се, да използватеTabControl, за да имитирате поведението на компонентаPageControl. За товадостатъчно е, например, да поставите два затварящи се панела вTabControlи да вмъкнете оператора в манипулатора на събитиетоOnChange:

АкоPanel2е горният панел, тогава когато е избран първият раздел (TabIndex = 0), той ще бъде направен невидим и долният панел ще се появи под него.

Но такава имитация наPageControlняма смисъл, тъй като е по-лесно да се използва самият компонентPageControl.TabControlтрябва да се използва, ако е необходимо някакво повторно изграждане в рамките на същия панел.

Сега нека се спрем накратко на компонентитеTabSet,TabbedNoteBookиNoteBook. Тези компоненти се използват в Delphi 1 и не се препоръчват за използване в 32-битови приложения.

КомпонентътTabbedNoteBookе аналогичен на многостраничния панелPageControl. Само много от свойствата, които са еднакви за тези панели, се наричат ​​по различен начин. Основното свойство еСтраници, което определя броя на страниците и етикетите на отметките. СвойствотоActivePageдефинира надписа на активната страница. СвойствотоPageIndexуказва индекса на активната страница (0 е първата страница). Така че можете да разберете коя страница е активна или чрез стойносттаActivePage, или чрезPageIndex.

На манипулатора на събитиеOnChange, който възниква, когато потребителят превключи страницата, се предава параметърътNewTab, равен на индекса на новата страница, иAllowChange— разрешението за превключване. За да деактивирате превключването, можете да зададетеAllowChange = falseв манипулатора.

КомпонентътNoteBookе пакет от панели, чиито имена и брой се определят от свойствотоPages, както в компонентаTabbedNoteBook. Индексът на избраната страница се определя от свойствотоPageIndex. Този компонент липсваконтролен елемент - отметки. Така че страниците могат да се превключват с някои бутони, превключват се в зависимост от действията на потребителя, в зависимост от показаните данни и т.н. КомпонентитеNoteBookиTabSetмогат, разбира се, да бъдат комбинирани програмно в компонент, подобен наTabbedNoteBook. За да направите това, достатъчно е да вмъкнете оператора в манипулатора на събитиеOnChangeна компонентаTabSet

Но такова използване на тези компоненти едва ли е препоръчително: по-добре е да използвате директноTabbedNoteBook.