⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 为列表框添光彩 (2000年8月9日).txt

📁 自己对DELPHI学习的一点体会
💻 TXT
字号:
为列表框添光彩 (2000年8月9日) 

本站更新  分类:   作者:srw  推荐:   阅读次数:568  
(http://www.codesky.net)  

--------------------------------------------------------------------------------


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

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

procedureTForm1.ListBox1DrawItem(Control:
TWinControl;Index:Integer;
Rect:TRect;State:TOwnerDrawState);
var
Bitmap:TBitmap;
Offset:Integer;
begin
with(ControlasTListBox).Canvasdo
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,
(ControlasTListBox).Items[Index])
end;
end;

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -