Как изменить цвет фона на разных строках в TListBox
Поместите следующий код в событие OnDrawItem Вашего ListBox:
procedure TForm1.ListBox1DrawItem (Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState) ; var myColor: TColor; myBrush: TBrush; begin myBrush := TBrush.Create; with (Control as TListBox).Canvas do begin if not Odd(Index) then myColor := clSilver else myColor := clYellow; myBrush.Style := bsSolid; myBrush.Color := myColor; Windows.FillRect(handle, Rect, myBrush.Handle) ; Brush.Style := bsClear; TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]) ; MyBrush.Free; end; end;
Комментарии