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

cs_Gerard 121 Messages postés jeudi 10 janvier 2002Date d'inscription 17 mars 2017 Dernière intervention - 23 juil. 2009 à 07:14 - Dernière réponse : cs_Gerard 121 Messages postés jeudi 10 janvier 2002Date d'inscription 17 mars 2017 Dernière intervention
- 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

Répondre au sujet
cs_47 197 Messages postés mardi 20 janvier 2004Date d'inscription 20 février 2013 Dernière intervention - 23 juil. 2009 à 12:05
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_47
cs_Gerard 121 Messages postés jeudi 10 janvier 2002Date d'inscription 17 mars 2017 Dernière intervention - 23 juil. 2009 à 12:25
0
Utile
merci, ça marche!
sans ton aide je n'y serai pas arrivé
Commenter la réponse de cs_Gerard

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.