请问如何在组合框里加图标!(50分)

  • 主题发起人 主题发起人 sh0
  • 开始时间 开始时间
用OnDrawItem事件
 
举个例子好吗?
 
将Combobox的Style属性设为csOwnerDrawFixed,假定Imagelist1中有几个图标

为Combobox加入字串
procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
for i:=0 to imagelist1.Count-1 do
Combobox1.Items.Add(inttostr(i));
end;

在OnItemDraw事件画图标及文本
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
Combobox1.Canvas.FillRect(Rect);
imagelist1.Draw(Combobox1.Canvas,Rect.left,rect.top,index);
combobox1.canvas.TextOut(rect.Left+20,rect.top, inttostr(index));
end;
 
<<Delphi 4.0 从入门到精通>>书中有详细讲解
 
能不能根据item的内容动态的指定图标!
 
呵呵
BuPack组件包中有个这样的东东
去Down吧
 
那不就是动态的吗?
 
你可以这样实现:
先设定您相加入的图,即最后一个参数,
然后,combobox1.refresh就可实现重画;
当然,你事先在TForm1.ComboBox1DrawItem()中写好
通用的程序。
 
呵呵,
去http://www.csdn.net/delphi down个例子看看吧。
或者delphi自带的例子
/Delphi5/Demos/OwnerDraw
 
接受答案了.
 
后退
顶部