Home » Tipps & Tricks » Komponenten » TListBox/TComboBox » Farbe eines selektierten Eintrags in einer Listbox ändern

Farbe eines selektierten Eintrags in einer Listbox ändern

Um die Farbe eines selektierten Eintrags in einer Listbox zu ändern, muss man die Eigenschaft Style der Listbox auf lbOwnerDrawFixed oder lbOwnerDrawVariable setzen und in das Ereignis DrawItem folgenden Code eintragen:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
  with (Control as TListbox) do
  begin
    if odSelected in State then //Prüft, ob ein Item markiert ist
      Canvas.Brush.Color := clRed; //Canvas-Hintergrundfarbe auf Rot setzen
    Canvas.FillRect(Rect); // Hintergrund malen
    Canvas.TextOut(Rect.Left, Rect.Top, Items[Index]); // Text ausgeben
  end;
end;