PageControl - TabSheet

jderf Messages postés 189 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 2 octobre 2014 - 20 janv. 2012 à 11:28
cs_servicepack Messages postés 3 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 4 février 2012 - 4 févr. 2012 à 13:38
Bonjour

J'ai un pageControl dans un Tframe. Le Tframe n'est pas encore visible et je veux masquer certain Tabsheet.
J'obtient un message d'erreur avec TabVisible et aucun message avec Enabled(voir code ci-dessous
)
// Désactivation des onglets au départ
  showmessage(inttostr(PageControl1.PageCount)); // --> pour débug, affiche 6

for i:=1 to PageControl1.PageCount - 1 do // la page 0 reste active
     PageControl1.Pages[i].TabVisible := false;  --> ERREUR : Indice de liste hors limite(6)
     //PageControl1.Pages[i].Enabled := false; // Par contre ceci fonctionne


Si je place le code dans l'evenement onClick d'un bouton, a l'éxuction, aucun probleme les onglets sont masqués.
Je pense mon problème est lié au fait que je le fait dans une phase d'initialisation de mon Tframe, pas encore visible. C'est curieux !

Je sais pas si il y a une solution ? Sinon je me contenterai de enabled.
Merci pour votre retour.


Jean.

12 réponses

beckerich Messages postés 302 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 17 septembre 2013 2
20 janv. 2012 à 18:38
bonjour,

procedure TForm4.FormShow(Sender: TObject);
var
  I: Integer;
begin
  Caption := IntToStr(PageControl1.PageCount);
  for I := 0 to PageControl1.PageCount-1 do
    PageControl1.Pages[i].TabVisible := False;
end;


Luc.
0