Conseils

Comment masquer les onglets du contrôle Delphi TPageControl

Comment masquer les onglets du contrôle Delphi TPageControl

Le contrôle Delphi TPageControl affiche un ensemble de pages utilisées pour créer une boîte de dialogue contenant plusieurs pages. Chaque page - une feuille d'onglets - héberge ses propres contrôles. L'utilisateur sélectionne une page (la rend visible) en cliquant sur l'onglet de la page qui apparaît en haut du contrôle.

Masquer les onglets PageControl

Si vous devez créer une interface utilisateur de type assistant dans laquelle les boutons Suivant et Précédent apparaissent pour déplacer un utilisateur vers l'avant et l'arrière dans un ensemble de pages (boîtes de dialogue), masquez les onglets du contrôle de page et empêche ainsi la sélection d'une page particulière au moyen de de la souris de l'utilisateur.

L'astuce consiste à régler le TabVisible propriété sur false pour chacune des feuilles (objet TTabSheet) du contrôle de page.

Activer la page en utilisant soit le ActivePage ou la ActivePageIndex Les propriétés de PageControl seront ne pas soulever le Sur le changement et Changement événements.

Pour définir par programme la page active, utilisez la méthode SelectNextPage:

// Masquer les onglets PageControl
var
page: entier;
commencer
pour la page: = 0 to PageControl1.PageCount - 1 do
commencer
PageControl1.Pagespage.TabVisible: = false;
fin;
// sélectionne le premier onglet
PageControl1.ActivePageIndex: = 0;
(*
Ou définir directement la page active
PageControl1.ActivePage: = TabSheet1;
Remarque: les deux précédentes ne soulèvent pas la
Evénements OnChanging et OnChange
*)
fin;
procédure TForm1.PageControl1Changing (
Expéditeur: TObject;
var AllowChange: Boolean);
commencer
// pas de changement si sur la dernière page
AllowChange: = PageControl1.ActivePageIndex <-1 + PageControl1.PageCount;
fin;
// Sélectionnez "Précédent" Tabprocedure TForm1.PreviousPageButtonClick (Sender: TObject);
commencer
PageControl1.SelectNextPage (false, false);
fin;
// Sélectionnez "Suivant" Tabprocedure TForm1.NextPageButtonClick (Sender: TObject);
commencer
PageControl1.SelectNextPage (true, false);
fin;

L'utilisation de cette technique permet de réduire l'encombrement du formulaire, ce qui conduit à une interface plus simple, mais garantit que la disposition des contrôles sur chaque onglet ne force pas l'utilisateur à se déplacer fréquemment entre les onglets.