Bonjour!
Je voudrais savoir s'il est posible (et comment! ;) ) griser un élément d'une ComboBox. L'élément serait toujours affiché, mais ne serait plus sélectionnable. Possible?
Merci! :)
Version imprimable
Bonjour!
Je voudrais savoir s'il est posible (et comment! ;) ) griser un élément d'une ComboBox. L'élément serait toujours affiché, mais ne serait plus sélectionnable. Possible?
Merci! :)
Salut !
Aprés avoire lu ça :
On conclusion :
Aussi: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 int Index_de_mon_Item=1; void __fastcall TForm1::ComboBox1DrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) { // on récupère le TComboBox qui a lancé l'événement, et son TCanvas TComboBox * pComboBox = ((TComboBox *)Control); TCanvas * pCanvas = pComboBox->Canvas; //On met le font en gris de l'element voulu : if (Index ==Index_de_mon_Item) { pCanvas->Font->Color = clGray; } // on dessine le fond de la cellule pCanvas->FillRect(Rect); // on dessine le texte de la cellule AnsiString Data = pComboBox->Items->Strings[Index]; Rect.left += 2; pCanvas->TextOut(Rect.Left,Rect.Top,Data); }
Faut mettre la propriété Style de ton ComboBox à csOwnerDrawFixed
Bonne continuation ! :wink:
Merci int13h! ;)
Voilà un bon morceau de réglé!
Il ne reste plus qu'à interdire la sélection de l'élément en gris - mais pour cela je peux toujours tenir à jour une table des éléments sélectionnables.
Bonne route! :)
re !
Avec un peu plus de réflection,je suis sûre que tu peu le faire tous seul Kramer !
:wink: