Combobox with colors (Views: 29)
Problem/Question/Abstract: Combobox with colors Answer: It is quite easy to create a combobox that shows a list of colors. You need to set the property "Style" to "csOwnerDrawFixed". This causes a call of "OnDrawItem" for each item in your combobox. The DrawItem routine draws a color bar.. // in FormCreate: with ComboBox1.Items do begin Add(IntToStr(clRed)); Add(IntToStr(clFuchsia)); Add(IntToStr(clBlue)); Add(IntToStr(clGreen)); Add(IntToStr(clYellow)); end; procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin with Control as TComboBox, Canvas do begin // fill the rectangle first with white Brush.Color := clWhite; FillRect(Rect); // then reduce it and fill it with the color InflateRect(Rect, -2, -2); Brush.Color := StrToInt(Items[Index]); FillRect(Rect); end; end; |