Come nascondere le schede del controllo Delphi TPageControl

Il controllo Delphi TPageControl visualizza una serie di pagine utilizzate per creare una finestra di dialogo di più pagine. Ogni pagina - una scheda - ospita i propri controlli. L'utente seleziona una pagina (la rende visibile) facendo clic sulla scheda della pagina visualizzata nella parte superiore del controllo.

Nascondere le schede PageControl

Se è necessario creare un'interfaccia utente simile a una procedura guidata in cui sono visualizzati i pulsanti Successivo e Precedente per spostare un utente avanti e indietro in una serie di pagine (finestre di dialogo), nascondere le schede di PageControl e quindi non consentire la selezione di una determinata pagina tramite del mouse dell'utente.

Il trucco sta nel settare il TabVisible proprietà su false per ciascuno dei fogli (oggetto TTabSheet) del controllo pagina.

Attivazione della pagina utilizzando il ActivePage o il ActivePageIndex Le proprietà di PageControl lo faranno non aumentare il OnChange e OnChanging eventi.

Per impostare a livello di programmazione la pagina attiva, utilizzare il metodo SelectNextPage:

 // Nascondi le schede PageControl
var
pagina: intero;
inizio
per pagina: = da 0 a PageControl1.PageCount - 1 operazione
inizio
PageControl1.Pages [pagina] .TabVisible: = false;
fine;
// seleziona la prima scheda
PageControl1.ActivePageIndex: = 0;
(*
Oppure imposta direttamente la Pagina attiva
PageControl1.ActivePage: = TabSheet1;
Nota: i due precedenti NON aumentano il valore
Eventi OnChanging e OnChange
*)
fine;
procedura TForm1.PageControl1Changing (
Mittente: TObject;
var AllowChange: Boolean);
inizio
// nessuna modifica se nell'ultima pagina
AllowChange: = PageControl1.ActivePageIndex < -1 + PageControl1.PageCount;
fine;
// Seleziona "Precedente" Tabprocedure TForm1.PreviousPageButtonClick (Mittente: TObject);
inizio
PageControl1.SelectNextPage (false, false);
fine;
// Seleziona "Next" Tabprocedure TForm1.NextPageButtonClick (Sender: TObject);
inizio
PageControl1.SelectNextPage (true, false);
fine;

L'uso di questa tecnica disordinerà il modulo, portando a un'interfaccia più snella, ma assicurerà che la disposizione dei controlli su ciascuna scheda non costringa l'utente a spostarsi frequentemente tra le schede.