Items de diferentes colores en un ListBox
Artículo por Club Developers · 31 diciembre 2005
3138 vistas
Si nuestro ListBox no tubiera columnas ya nos servirÃa lo explicado en [iurl=85&fs=164#167]Items de diferentes colores en un ComboBox[/iurl], pero en el caso de que las tubiera, necesitarÃamos usar el API
delphi
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;  Rect: TRect; State: TOwnerDrawState); var  PosTab: integer;  dtp: TDrawTextParams; begin  with (Control as TListBox) do   begin    { Los Items pares de color rojo, los impares en negro }    if Odd(Index) then Canvas.Font.Color := clRed    else Canvas.Font.Color := clBlack;    Canvas.FillRect(Rect);    with dtp do    begin     cbSize := SizeOf(TDrawTextParams);     iTabLength := TabWidth;     iLeftMargin := 0;     iRightMargin := 0;    end;    DrawTextEx( Canvas.Handle, PChar(Items[Index]), Length(Items[Index]),          Rect,DT_LEFT or DT_EXPANDTABS or DT_TABSTOP,@dtp);   end; end;