Propriété Highlighted d'un TTabSheet (TPageControl) [Résolu]

cs_Jean_Jean 639 Messages postés dimanche 13 août 2006Date d'inscription 5 mai 2016 Dernière intervention - 23 mai 2012 à 11:53 - Dernière réponse : cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention
- 25 mai 2012 à 10:50
Bonjour,

J'ai un souci avec la propriété Highlighted de TTabSheet.
Je voulais trouver un moyen simple de mettre cette propriété à True lorsque la page correspondante est active. Voici mon code qui m'indique une erreur à la compilation :
identificateur non déclaré : Highlighted

No comprendo!

procedure TMainForm.PageChange(Sender: TObject);
 var C, Onglet : Integer;
begin
  For C := 0 to ComponentCount - 1 do
   if Components[C] is TTabSheet then
    For onglet := 1 to 5 do
     if TTabSheet(Sender).Name = 'TabSheet'+IntToStr(onglet)
      then TTabSheet(FindComponent('TabSheet'+IntToStr(onglet)).Highlighted := True
      else TTabSheet(FindComponent('TabSheet'+IntToStr(onglet)).Highlighted := False;
end;


Voyez-vous mon erreur?

Jean_Jean
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 23 mai 2012 à 13:12
3
Merci
Bonjour,

une piste :

procedure TForm1.PageControl1Change(Sender: TObject);
var
  i: integer;
begin
  TTabSheet(PageControl1.ActivePage).Highlighted := not (TTabSheet(PageControl1.ActivePage).Highlighted);
end;


Reste maintenant à les rendre inactifs tous juste avant..

cantador

Merci cs_cantador 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_cantador
Meilleure réponse
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 23 mai 2012 à 13:22
3
Merci
si tu colles ceci juste avant (3 onglets)

  TTabSheet(PageControl1.Pages[0]).Highlighted := false;
  TTabSheet(PageControl1.Pages[1]).Highlighted := false;
  TTabSheet(PageControl1.Pages[2]).Highlighted := false;


ça marche, mais c'est pas beau.

cantador

Merci cs_cantador 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_cantador
Meilleure réponse
cs_Jean_Jean 639 Messages postés dimanche 13 août 2006Date d'inscription 5 mai 2016 Dernière intervention - 23 mai 2012 à 13:54
3
Merci
Merci cantador, c'est Top!

procedure TMainForm.PageChange(Sender: TObject);
 var Onglet : Integer;
begin
  For onglet := 0 to 4 do TTabSheet(PageControl1.Pages[onglet]).Highlighted := False;
  TTabSheet(PageControl1.ActivePage).Highlighted := not (TTabSheet(PageControl1.ActivePage).Highlighted);
end;


TTabSheet n'est sans doute pas considéré comme un composant pouvant être directement identifié par FindComponent... Bon à savoir

Jean_Jean

Merci cs_Jean_Jean 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_Jean_Jean
Meilleure réponse
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 23 mai 2012 à 20:05
3
Merci
pas tout à fait..
car c'est coder encore en dur.
il faudrait remplacer le 4 par un (count - 1)

cantador

Merci cs_cantador 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_cantador
Meilleure réponse
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 25 mai 2012 à 10:50
3
Merci
procedure TForm1.PageControl1Change(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to PageControl1.PageCount - 1 do
    TTabSheet(PageControl1.Pages[i]).Highlighted := False;
  TTabSheet(PageControl1.ActivePage).Highlighted := not (TTabSheet(PageControl1.ActivePage).Highlighted);
end;



cantador

Merci cs_cantador 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_cantador

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.