コンボボックス

解決


ルイ  2005-11-14 09:56:51  No: 18689

コンボボックスで色を選択させたいので、コンボボックスのそれぞれの列?の背景に色を付けたいのですが。。。
どうすれば良いのでしょうか?


Syake  2005-11-14 17:05:29  No: 18690

>コンボボックスのそれぞれの列?
行?
できなくもないようですが、それよりTColorBoxではいけないの?


りおりお  2005-11-14 19:51:37  No: 18691

これはかなり簡単にできます。

新規で 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;


ルイ  2005-11-16 09:59:13  No: 18692

できました^^
ありがとうございます


ルイ  2005-11-16 09:59:13  No: 18693

できました^^
ありがとうございます


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加