Este artículo describe brevemente cómo Delphi implementa elementos en Listbox para mostrar diferentes colores según el contenido. Los pasos de implementación son los siguientes:
Cambie la propiedad Estilo de ListBox1 a lbOwnerDrawVariable
En el evento OnDrawItem del ListBox, cambie la propiedad Canvas según el valor del elemento.
El código de muestra es el siguiente:
procedimiento TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TownerDrawState);begin //La fuente usa el color predeterminado original si Odd(index) entonces //El color cuando el índice de elementos es impar número comienza listbox1 .Canvas.Brush.Color:=clwindow; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); el color cuando el índice de elementos es un número par start listbox1.Canvas.Brush.Color:=clinactivecaptiontext ; ListBox1 .Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); odSelected en estado luego //Color cuando se selecciona comenzar listbox1.Canvas.Brush.Color:=clhighlight; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]);