Salut a tous,
je voudrais savoir s'il était possible de changer la couleur des onglets des "pages control"?
Si oui comment fait-on?
Salut a tous,
je voudrais savoir s'il était possible de changer la couleur des onglets des "pages control"?
Si oui comment fait-on?
Salut,
Oui, c'est possible (et pas difficile).
Il suffit de passer la propriété "OwnerDraw" de ton pageControl à true.
Et d'ajouter le code dans l'évènement "OnDrawTab" pour dessiner toi-même ce que tu veux dans tes onglets.
OUla j'y connais pas grand chose. Je dois mettre quoi comme code par exemple pour changer la couleur ( et ou dois je le maitre exactement?àEnvoyé par Kaji
Salut,
Un exemple qui, si j'ai bien compris le problème, doit t'aider :
@ +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 void __fastcall TForm3::PageControl1DrawTab(TCustomTabControl *Control, int TabIndex, const TRect &Rect, bool Active) { TCanvas *pC = Form3->PageControl1->Canvas; switch (TabIndex) { case (0): pC->Brush->Color = clRed; pC->FillRect(Rect); break; case (1): pC->Brush->Color = clBlue; pC->FillRect(Rect); break; } }
j'ai mis ca dans mon main.cpp:
et ca me renvoie l'erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void __fastcall TForm1::Page(TCustomTabControl *Control, int TabIndex, const TRect &Rect, bool Active) { TCanvas *pC = Form1->Page->Canvas; switch (TabIndex) { case (0): pC->Brush->Color = clRed; pC->FillRect(Rect); break; case (1): pC->Brush->Color = clBlue; pC->FillRect(Rect); break; } }
[C++ Error] CDtheque_main.cpp(72): E2316 '_fastcall TForm1:age(TCustomTabControl *,int,const TRect &,bool)' is not a member of 'TForm1'
a peut etre que ca peut venir de mon.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 class TForm1 : public TForm { __published: // IDE-managed Components TPageControl *Page; TTabSheet *PageAccueil; TTabSheet *PageRechercher; TTabSheet *PageMonPanier; TStaticText *StaticText1; TBitBtn *BitBtn1; TImage *Image1; TEdit *RechercheNormalEdit; TBitBtn *RecherNormalBoutton; TRadioGroup *RechercheAvance; TRadioButton *GlobaleSelect; TRadioButton *ArtisteSelect; TRadioButton *AlbumSelect; TRadioButton *TitreSelect; TComboBox *StyleSelect; TLabel *Label1; void __fastcall Rechercher(); void __fastcall BitBtn1Click(TObject *Sender); void __fastcall RecherNormalBouttonClick(TObject *Sender); void __fastcall PageRechercherShow(TObject *Sender); void __fastcall RechercheNormalEditKeyPress(TObject *Sender, char &Key); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1;
Arfff,
Excuses je n'ai pas précisé.....regardes dans ton .H, la fonction doit y etre déclarée :
et dans l'inspecteur d'objet, pour le TPageControl, double-click dans l'évènement OnDrawtab. Cela doit te renvoyer sur la fonction que tu viens d'inserer 'à la main'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void __fastcall PageControl1DrawTab(TCustomTabControl *Control, int TabIndex, const TRect &Rect, bool Active);
merci ca marche.
Je voudrais juste savoir s'il est possible d'avoir une couleur diiférent pour les cas ou l'onglet est actif ou pas?
A oui et aussi le fait de faire ownDraw true m'as enlevé le texte qu'il y avait sur les onglets, comment faire pour le faire réapparaitre?
Il faut que tu l'écrives toi-même avec des TextOut je crois
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
vi c'est ce que j'ai fait. Mais je n'arrive pas a changer la police (j'ai posté un autre poste pour ce problem).
C'est la propriété font du PageControl je pense.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
et pour changer la couleur de l'onglet elon qu'il soit actif ou pas comment faut faire?
Est ce que je pet faire une condition du genre:
si la page active est la page truc alor je fait une couleur sinon une autre?
Mais je vois pas comment faire pour savoir si la page est la page active
Si je ne me trompe pas c'est indiquer ici, non ?void __fastcall PageControl1DrawTab(TCustomTabControl *Control,
int TabIndex, const TRect &Rect, bool Active);
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Partager