Подтвердить что ты не робот

Как нарисовать выбранный элемент списка в другом цвете?

Можно ли изменить цвет фокуса выбора и цвет текста в TListBox?

Если темы не включены в проекте или стиль списка задан для рисования владельца, выделение вокруг элемента будет окрашено в синий цвет, что, по моему мнению, определяется глобальными настройками внешнего вида.

Я хотел бы изменить цвет выбранных элементов на пользовательский цвет.

Таким образом, результат будет примерно таким:

enter image description here

Обратите внимание, что последний список был изменен в Paint, чтобы проиллюстрировать этот пример.

4b9b3361

Ответ 1

попробуйте следующее:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with (Control as TListBox).Canvas do
  begin
    if odSelected in State then
      Brush.Color := $00FFD2A6;

    FillRect(Rect);
    TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]);
    if odFocused In State then begin
      Brush.Color := ListBox1.Color;
      DrawFocusRect(Rect);
    end;
  end;
end;

Ответ 2

Я видел, что свойство Style должно быть lbOwnerDrawFixed