コンボボックスで色を選択させたいので、コンボボックスのそれぞれの列?の背景に色を付けたいのですが。。。
どうすれば良いのでしょうか?
>コンボボックスのそれぞれの列?
行?
できなくもないようですが、それよりTColorBoxではいけないの?
これはかなり簡単にできます。
新規で Form1 に ComboBox1 を置いて
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Style := csOwnerDrawFixed;
ComboBox1.ItemHeight := 16; // 以上はオブジェクトインスペクタでも設定できる
ComboBox1.Items.AddObject('Red',TObject(clRed));
ComboBox1.Items.AddObject('Green',TObject(clGreen));
ComboBox1.Items.AddObject('Blue',TObject(clBlue));
ComboBox1.Items.AddObject('Yellow',TObject(clYellow));
end;
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
cb: TComboBox;
begin
cb := Control as TComboBox;
cb.Canvas.Brush.Color := TColor(cb.Items.Objects[Index]);
cb.Canvas.FillRect(Rect);
cb.Canvas.TextOut(Rect.Left+2, Rect.Top+2, cb.Items[Index]);
end;
できました^^
ありがとうございます
できました^^
ありがとうございます
ツイート | ![]() |