Bonjour,
je suis sous XE3 et je voudrais définir la couleur d'un TabSheet.
Je n'ai pas pu trouver la propriété Color.
Merci de votre aide.
Xavier
Version imprimable
Bonjour,
je suis sous XE3 et je voudrais définir la couleur d'un TabSheet.
Je n'ai pas pu trouver la propriété Color.
Merci de votre aide.
Xavier
Bonjour,
Il faut défnir la propriété OwnerDraw à true du TabControl et ensuite tu peux utiliser son événement OnDrawTab
Un petit exemple :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 void __fastcall TForm1::TabControl1DrawTab(TCustomTabControl *Control, int TabIndex, const TRect &Rect, bool Active) { int l_iLargeur, l_iHauteur; if (Active) { Control->Canvas->Brush->Color = clGreen; Control->Canvas->Font->Color = clDkGray; } else switch (TabIndex) { case 1: Control->Canvas->Brush->Color = clFuchsia; Control->Canvas->Font->Color = clWhite; break; case 2: Control->Canvas->Brush->Color = clBlue; Control->Canvas->Font->Color = clYellow; break; default: Control->Canvas->Brush->Color = clWhite; Control->Canvas->Font->Color = clBlack; } Control->Canvas->Rectangle(Rect); l_iHauteur = Control->Canvas->TextHeight(static_cast<TPageControl*>(Control)->ActivePage->Caption); l_iLargeur = Rect.Left; Control->Canvas->TextOut(l_iLargeur, Rect.Top + 2, static_cast<TTabControl*>(Control)->Tabs->Strings[TabIndex]); }
Merci beaucoup free07.
Dans ma Pagecontrol, j'ai réussi à modifier les zones Tab avec ton code.
Juste une question à profondir:
Sous my PageControl, il y a deux TabSheets, est-qu'il y a un moyen de définir la couleur de l'ensemble d'un TabSheet (pas que sur la zone Tab, mais sur toute la surface)?
Merci d'avance
Xavier
Merci beaucoup.
Xavier