Comment masquer les onglets du contrôle TPageControl Delphi

Le contrôle TPageControl Delphi affiche un ensemble de pages utilisées pour créer une boîte de dialogue de plusieurs pages. Chaque page - une feuille d'onglet - 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 champ.

Masquage des onglets PageControl

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

L'astuce consiste à définir la TabVisible propriété false sur 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 ne pas élève le Sur le changement et OnChanging é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 à PageControl1.PageCount - 1 do
commencer
PageControl1.Pages [page] .TabVisible: = false;
fin;
// sélectionnez le premier onglet
PageControl1.ActivePageIndex: = 0;
(*
Ou définissez la page active directement
PageControl1.ActivePage: = TabSheet1;
Remarque: les deux ci-dessus n'augmentent PAS le
Évé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 désencombrera le formulaire, conduisant à une interface plus rationalisée, mais garantira que la disposition des contrôles sur chaque onglet n'oblige pas l'utilisateur à se déplacer fréquemment entre les onglets.