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
|