begin process at 2008 08 29 21:01:19
1 233 885 membres
407 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Mettre en couleur une ligne dans une combobox [ Archives / Divers ] (dimdidi)

Mettre en couleur une ligne dans une combobox le 30/09/2005 09:48:30

dimdidi
Bonjour,

Je voudrais pouvoir mettre en couleur une ligne dans une combobox.

du genre ComboBox.Item[1].color=clBlack;

J'ai aussi regardé ComboBoxEx mais je n'ai pas trouvé;

Si quelqu'un à une idée ?
Merci d'avance...

Dimdidi


Re : Mettre en couleur une ligne dans une combobox le 01/10/2005 10:48:35

barbichette
Membre Club
Réponse acceptée !
Ben,
 voilà un exemple où le premier item est en jaune.
Il faut mettre ce code dans l'évenement OnDrawItem du Combobox
et définir le Style du combobox à csOwnerDrawFixed ou csOwnerDrawVariable.

if odSelected in State then
 begin
  combobox1.Canvas.Brush.color:=clHighlight;
  combobox1.Canvas.pen.color:=clHighlightText;
 end
else
if odComboBoxEdit in State then
  begin
   combobox1.Canvas.Brush.color:=clWindow;
   combobox1.Canvas.pen.color:=clWindowText;
  end
else
  begin
   combobox1.Canvas.Brush.color:=clWindow;
   combobox1.Canvas.pen.color:=clWindowText;
   if index=0 then combobox1.Canvas.Brush.color:=clyellow;
  end;
combobox1.Canvas.fillrect(rect);
combobox1.canvas.TextOut(rect.Left+1,rect.Top+1,combobox1.Items[index]);


Maintenant,
 si tu supprime le bloc du milieu (if odComboBoxEdit in State then...)
ton combobox cera en jaune quand le premier item sera selectionné, même dans la zone en haut, sinon, cette zone est toujours blanche (ou d'une autre couleur que tu peut justement choisir ici...)

Par contre, dans ces deux style de combobox, l'utilisateur ne peut pas entrer une valeur. Seules celles de Items peuvent être choisies

Barbichette

Re : Mettre en couleur une ligne dans une combobox le 04/10/2005 09:18:34

dimdidi
Désolé pour la validation tardive mais je n'ai pas pu me connecter plus tot
Sinon cela fonctionne bien à un chouilla près

if odSelected in State then
 begin
  combobox1.Canvas.Brush.color:=clHighlight;
  combobox1.Canvas.pen.color:=clHighlightText;
 end
else
if odComboBoxEdit in State then
  begin
   combobox1.Canvas.pen.color:=clWindowText;
   if index=0 then combobox1.Canvas.Brush.color:=clyellow
   else combobox1.Canvas.Brush.color:=clWindow;
   // Sinon quand on selectionne on ne garde pas la couleur
  end
else
  begin  
   combobox1.Canvas.pen.color:=clWindowText;
   if index=0 then combobox1.Canvas.Brush.color:=clyellow
   else combobox1.Canvas.Brush.color:=clWindow;
  end;
combobox1.Canvas.fillrect(rect);
combobox1.canvas.TextOut(rect.Left+1,rect.Top+1,combobox1.Items[index]);


Merci Barbichette pour le code et les commentatires

Dimdidi



Classé sous : combobox, ligne, couleur

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS