Einzelnen Beitrag anzeigen

to-wer

Registriert seit: 25. Mär 2007
29 Beiträge
 
#8

AW: Listbox mit Farbflächendarstellung

  Alt 28. Dez 2017, 14:45
Hallo Aviator,
ich denke, dass ich es tatsächlich mit der Combobox machen möchte.
Nach einigen Versuchen hatte ich die Jedi Komponenten zwar installiert bekommen, kann aufgrund fehlender Erfahrung damit aber nicht so viel anfangen.

Meine OnDraw Komponenten sieht jetzt so aus, wobei ich z.B. noch die Schriftfarbe abhängig von der Hintergrundfarbe einstellen werde.
Eine Kleinigkeit funktioniert aber noch nicht... die Farbwerte für die Farbnamen habe ich in einem anderen Array "Polyneon". Dort möchte ich parallel den gleichen Wert abfragen wie gerade das Item in der Combobox bearbeitet wird. Das funktioniert aber nicht (Programmfehler). Ist Combobox1.ItemIndex nicht der richtige Zeiger auf die aktuelle Zeile?

Code:
procedure TForm2.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with (Control as TComboBox).Canvas do begin // in ListBox zeichnen
    Brush.Color := StringToColor(Polyneon[ComboBox1.ItemIndex]);
    Brush.Style := bsSolid;
    FillRect(Rect);
    Brush.Style := bsClear;
    TextOut(Rect.Left, Rect.Top, (Control as TComboBox).Items[Index]); // Text schreiben
  end;
end;
  Mit Zitat antworten Zitat