📄 为列表框添光彩 (2000年8月9日).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 + -