Cet article décrit brièvement comment Delphi implémente les éléments dans Listbox pour afficher différentes couleurs en fonction du contenu. Les étapes d'implémentation sont les suivantes :
Remplacez la propriété Style de ListBox1 par lbOwnerDrawVariable.
Dans l'événement OnDrawItem du ListBox, modifiez la propriété Canvas en fonction de la valeur de l'élément.
L'exemple de code est le suivant :
procédure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TownerDrawState);begin //La police utilise la couleur par défaut d'origine si Odd(index) then //La couleur lorsque l'index des éléments est impair numéro début listbox1 .Canvas.Brush.Color:=clwindow; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); end else //La couleur lorsque l'index des éléments est un nombre pair start listbox1.Canvas.Brush.Color:=clinactivecaptiontext ; ListBox1 .Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); odSelected dans l'état puis //Couleur une fois sélectionné start listbox1.Canvas.Brush.Color:=clhighlight; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]);