没听太明白,不知道你是不是的这个东西
步骤:
1.将ComboBox的Sytle属性设为:csOwnerDrawVariable 或csOwnerDrawFixed
2.用几个隐形的Image保存你的图片
3.用ComboBox.Items的Add0bject方法加下文字和图片
4.在ComboBox的OnDrawItem事件画出来你想要的东西
5.Scrollbar会自动生成,但如何变flat我就不得而知了,那是控件自内部,
不过你可以找一个第三方控件XP风格的ComboBox,再如法炮制,就应该能搞定(我猜的)
下面有个例子是做色彩选择的ComboBox的,用D5做的,没想到D6自带此控件,ft!
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.style:=csOwnerDrawVariable;
ComboBox1.Items.Clear;
ComboBox1.items.AddObject('',image1.Picture.Bitmap);
ComboBox1.items.AddObject('',image2.Picture.Bitmap);
ComboBox1.items.AddObject('',image3.Picture.Bitmap);
ComboBox1.items.AddObject('',image4.Picture.Bitmap);
ComboBox1.items.AddObject('',image5.Picture.Bitmap);
ComboBox1.items.AddObject('',image6.Picture.Bitmap);
ComboBox1.items.AddObject('',image7.Picture.Bitmap);
ComboBox1.items.AddObject('',image8.Picture.Bitmap);
ComboBox1.items.AddObject('',image9.Picture.Bitmap);
end;
procedure TForm1.combobox1DrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
bmp:TBitmap;
begin
with combobox1.Canvas do
begin
FillRect(Rect);
bmp:=TBitmap(combobox1.Items.Objects[Index]); //显示图形
draw(Rect.left,Rect.top,bmp);
end;
end;