Colorer un onglet d'un TabControl [Résolu]

Messages postés
123
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
- - Dernière réponse : cs_Gerard
Messages postés
123
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
- 23 juil. 2009 à 12:25
Bonjour,

j'essaie de colorer un onglet d'un tabControl.
Ce code ne fait rien:
Var Onglet: TRect;
begin
Onglet:= TabControl1.TabRect(0);
TabControl1.Canvas.Brush.Color:=clSkyBlue;
TabControl1.Canvas.FillRect(Onglet);
end;
Y a-t-il un moyen de le faire?

merci
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
3
Merci
Bonjour,

testé sous Delphi 2006, dans ton tabControl, il faut mettre la propriété OwnerDraw à true, puis dans les évènement il faut utiliser OnDrawTable

procedure TForm1.TabControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean);
var a, b: Integer;
begin
  if Active then begin
  Control.Canvas.Brush.Color := clWhite;
  Control.Canvas.Font.Color := clBlack;
 end else begin
  Control.Canvas.Brush.Color := clBlack;
  Control.Canvas.Font.Color := clWhite;
 end;

 Control.Canvas.Pen.Style := psClear;
 Control.Canvas.Rectangle(Rect);
   a := Control.Canvas.TextHeight((Control as TTabControl).Tabs.Strings[TabIndex]);
  b := Rect.Left;
  Control.Canvas.TextOut(b, Rect.Top + (Rect.Bottom - Rect.Top - a) div 2, (Control as TTabControl).Tabs.Strings[TabIndex]);
end;


aprés faut jouer un peu avec la position du texte (modifier b)
et en utilisant TabIndex, on peut mettre la couleur que l'on souhaite sur tous les onglets

bonne journée

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_47
Messages postés
123
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
0
Merci
merci, ça marche!
sans ton aide je n'y serai pas arrivé
Commenter la réponse de cs_Gerard