Items in Combobox farbig

Flens

Erfahrenes Mitglied
Hallo!

Gibt es eine Möglichkeit, die Einträge in einer Combobox farblich zu verändern?

Es sind z. B. 5 Einträge in der Combobox und der 3. und 4. Eintrag soll nicht in schwarzer Schrift angezeigt werden, sondern z. B. in rot.

Gruß

Flens
 

derGugi

Erfahrenes Mitglied
Dafür kannst du den DrawItem Event der Combobox gebrauchen. Einfach den Style auf CsOwnerDrawFixed stellen und im Event die Farbe ändern. Zum Beispiel sowas:

Code:
procedure changeColor(Control : TWinControl; Rect: TRect; Index: Integer);
begin
if Index = 2 then begin
  with (Control as TComboBox) do begin
      Canvas.Font.Color := clRed;
      Canvas.textOut(Rect.Left,Rect.Top,Items[Index]);
  end;
end;
end;

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
changecolor(Control, Rect, Index);
end;

greetz
gugi