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

cs_Gerard 123 Messages postés jeudi 10 janvier 2002Date d'inscription 7 août 2018 Dernière intervention - 23 juil. 2009 à 07:14 - Dernière réponse : cs_Gerard 123 Messages postés jeudi 10 janvier 2002Date d'inscription 7 août 2018 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 

Votre réponse

2 réponses

Meilleure réponse
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
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

Merci cs_47 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de cs_47
cs_Gerard 123 Messages postés jeudi 10 janvier 2002Date d'inscription 7 août 2018 Dernière intervention - 23 juil. 2009 à 12:25
0
Merci
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.