SpringOne
Messages postés6Date d'inscriptionmercredi 10 novembre 2004StatutMembreDernière intervention 4 février 2007
-
26 juin 2006 à 21:55
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 2013
-
27 juin 2006 à 13:25
Bonjour tout le monde !
J'aimerai savoir comment changer la couleur de la surbrillance d'un listbox,
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 27 juin 2006 à 13:25
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...