关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 构件使用 ->详细
相关内容  
 
 
在Delphi程序中应用IE浏览器控件
 
【新品推荐】

  详细内容
 

为列表框添光彩
作者: 评价: 上站日期: 2001-09-04
内容说明:
来源:

为了改变Listbox和Combobox两个控件的单调风格, 我想在它们的每一项前面加上个图标。从表面上看好像不大可能啦。就在走投无路的时候,我忽然发现这两个构件都有一个style属性, 它可以设为lbOwnerDrawFixed,Draw这个单词吸引了我,然后我又从Delphi的在线帮助中找到了一个相关的事件OnDrawItem,在这个事件中写一段代码,就可以在列表框中的每一项前面添加一个小图标啦。 

---- 下面是在Listbox 的OnDrawItem事件中添加的代码: 

procedure TForm1.ListBox1DrawItem(Control: 
TWinControl; Index: Integer; 
Rect: TRect; State: TOwnerDrawState); 
var 
Bitmap: TBitmap; 
Offset: Integer; 
begin 
with (Control as TListBox).Canvas do 
begin 
FillRect(Rect); 
Offset := 2; 
Bitmap := TBitmap.create; 
Bitmap.LoadFromFile(′d:\temp1\1.bmp′); 
//指定图文件是d:\temp1\1.bmp 
BrushCopy(Bounds(Rect.Left + 2, Rect.Top, 
Bitmap.Width, Bitmap.Height), 
Bitmap, Bounds(0, 0, Bitmap.Width, 
Bitmap.Height), clRed); 
Offset := Bitmap.width + 6; 
TextOut(Rect.Left + Offset, Rect.Top, 
(Control as TListBox).Items[Index]) 
end; 
end; 

---- 进一步,利用OnDrawItem事件的参数Index还可以在不同项前面添加不同的图标。还要告诉你的是, 当用add方法为列表框或下拉框添加项目时, 会自动执行 OnDrawItem事件,这样新添加的项目前面也就有了一个图标。 

 
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 构件使用 ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0