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;