Surbrillance Listbox [Résolu]

Messages postés
6
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
4 février 2007
- - Dernière réponse : ThWilliam
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
- 27 juin 2006 à 13:25
Bonjour tout le monde !

J'aimerai savoir comment changer la couleur de la surbrillance d'un listbox,

Merci d'avance.
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
1
3
Merci
Salut,

Pour ce faire, tu donnes à ton listbox le style :  lbOwnerDrawFixed (hauteur de ligne fixe)  ou lbOwnerDrawVariable.
Tu assignes un événement OnDrawItem dans lequel tu peux dessiner sur le Canvas du ListBox.
Attention : il faut redessiner aussi le texte des Items.

Exemple de code :

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
   with ListBox1 do
   begin
       Canvas.Font.Assign(Font);
        if odSelected in State then   // si l'item est sélectionné
        begin
           Canvas.Brush.Color:= clAqua; // ta couleur de surbrillance
           Canvas.Font.Color:= clwhite;   // la couleur du texte
        end
       else
           Canvas.Brush.Color:= Color;
       Canvas.FillRect(Rect);
       Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, Items[Index]);
   end;
end;

Le Left + 2 et le Top + 1 : ce n'est qu'un exemple, à toi de choisir les valeurs. Tu peux aussi centrer le texte verticalement en t'aidant de TextHeight...

A +
Thierry

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 138 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ThWilliam