Items de diferentes colores en un ComboBox

4127 vistas

Para poder pintar de diferentes colores los items de un ComboBox, basta con poner la propiedad Style a lbOwnerDrawFixed y poner el siguiente código en su evento OnDrawItem



delphi
  1. procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  2.   Rect: TRect; State: TOwnerDrawState);
  3. begin
  4.   with (Control as TComboBox) do
  5.   begin
  6.     { Los Items pares de color rojo y los impares en negro }
  7.     if Odd(Index) then
  8.       Canvas.Font.Color := clRed
  9.     else
  10.       Canvas.Font.Color := clBlack;
  11.     Canvas.FillRect(Rect);
  12.     Canvas.TextOut(Rect.Left, Rect.Top, Items[Index]);
  13.   end;
  14. end;



Nota: esto mismo es aplicable al TListBox