Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#12

Re: ComboBox -> Mehrfarbig gestalten

  Alt 1. Nov 2009, 22:45
Hallo zusammen,

ich habe nach dem einfärben der ComboBox in verschieden Farben gesucht, und bin zu diesem Thread gekommen. Mein Problem ist, das ich alles so glaube ich, genau so geamcht habe wie hier gezeigt, jedoch ändern sich meine Farben der ComboBox nicht.

Hier mal mein Code...
Delphi-Quellcode:
procedure TMailSendenForm.CBGruppeAnlegenDrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
var Farbe: TColor;
begin
  Farbe := CBGruppeAnlegen.Color; //Hintergrundfarbe für alle Items, die nicht eine spezielle Farbe haben

  //--'Inhalt' der Zeile abfragen und ggf. spezielle Farbe zuweisen
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 1then Farbe := clLime;
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 2then Farbe:= clYellow;
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 3then Farbe:= clBlue;
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 4then Farbe:= clFuchsia;
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 5then Farbe:= clAqua;
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 6then Farbe:= clMoneyGreen;
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 7then Farbe:= clSkyBlue;
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 8then Farbe:= clNavy;
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 9then Farbe:= clTeal;
  if CBGruppeAnlegen.Items[Index] = 'Gruppe 10then Farbe:= clPurple;

  //-- Zeile mit der entsprechenden Farbe zeichen; standard=Combobox-Farbe (oder eine beliebige andere)
  with CBGruppeAnlegen, CBGruppeAnlegen.Canvas do begin
    Font.Color:= clblack; // SchriftFarbe
    Brush.Color:= Farbe; // HintergrundFarbe
    FillRect(Rect); // Hintergrund zeichnen
    TextOut(Rect.Left+5, Rect.Top+1, Items[index]); // Textausgabe
  end;
end;
Vieleicht hat ja jemand eine Idee. Danke schon mal und Gruß

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat