Hello,
j'ai écumé le web et ce forum ci bien sûr avant de poster cette question.
Nous avons un TTabControl contenant un nombre variable d'onglets.
Certains de ceux-ci correspondent à des éléments ayant une caractéristiques particulière.
Nous aimerions que la couleur de la police de ces onglets soit donc différente de la police par défaut (rouge par exemple) afin de faire "ressortir" visuellement ces onglets dès le premier coup d'œil de l'utilisateur.
Les exemples vus de sujets "approchants" ne permettent pas de faire exactement cela.
Il ne s'agit pas de modifier l'apparence de l'onglet sélectionné par exemple, non, les onglets en question doivent avoir juste une couleur de police différente, tout en gardant toutes les caractéristiques définies pour le TTabControl (couleur de survol, de focus, de fond, etc...).
Voici un exemple de ces onglets :
http://img25.imageshack.us/img25/704...etscouleur.jpg
Imaginez que les onglets 8 et 11 correspondent à des éléments "particuliers", il nous faudrait donc dans cette image qu'ils soient affichés avec une police rouge.
En fait lors de la construction des éléments du TTabControl, nous affectons un objet à chaque élément, c'est via cet objet ensuite qu'on pensait qu'il serait possible de modifier l'apparence des onglets dits "particuliers" (notamment dans le tabControlDrawTab), mais comme je vous l'ai dit ça ne marche absolument pas (dans le tabControlDrawTab on peut retrouver l'objet correspondant à l'index "TabIndex" transmis à l'évènement, mais ensuite ça capote complètement, impossible de lui faire coloriser l'onglet d'index "TabIndex", et en plus on perd évidemment tout le côté graphique pré-défini du TTabcontrol (il faudrait donc TOUT redéfinir à chaque passage dans l'évènement ?).
Code d'affectation des objets :
Nous allons mettre en place une solution annexe : une checkbox permettra de n'afficher que les onglets correspondants aux fameux éléments particuliers (dans l'exemple précédent donc on aurait que les onglets 8 et 11 d'affichés lorsque cette coche serait cochée).
Code : Sélectionner tout - Visualiser dans une fenêtre à part tabs.AddObject(intToStr(i+1), monObjet);
Merci.
NB : je ne serai pas présent avant le 6 septembre, mais une collègue elle aussi sur ce projet regardera s'il y a des réponses.








Répondre avec citation
Partager