当前位置: 首页 > 图文教程 > 开发语言 > Delphi > 具有不同字体的列表框

Delphi
得到执行程序的目录
返回程序执行参数
如何区分3种不同的FormActive事件
正确关闭一个MDI子窗口
写小执行程序
替换指定串函数
动态数组
动态产生构件并相应事件
文件管理(一)
想成高手吗?快来学Delphi快捷键
浅谈Delphi如何控制Excel操作
用Delphi检测IE使用的代理服务器
Delphi学习:查句柄知多少
Delphi学习:OOP 中的双刃剑
在 NT内核的操作系统上实现系统关闭
用Delphi制作DLL的方法
Delphi:Daily build实践
Delphi控制Excel的重要属性和方法
Delphi学习:2个不错的通配符比较函数
字符串分割扩展 SplitEx

Delphi 中的 具有不同字体的列表框


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 94 ::
收藏到网摘: n/a

 
一般情况下,列表框内所有项的字体、大小、颜色等属性都是一样的。但是我们可以通过编写简单的程序使得每一项都能有自己的字体、大小和颜色。为了对比,我们用了两个Listbox构件,Listbox1按一般情况显示,Listbox2显示的每一项都可以有自己的字体、大小、颜色。

---- 首先把Listbox2的style属性改为lbOwnerDrawVariable。然后分别编写它的OnDrawItem事件和OnDrawItem事件。下面就是Listbox2 的OnDrawItem事件和OnDrawItem事件的代码:


procedure TForm1.ListBox2DrawItem(Control:TWinControl; Index: Integer;Rect: TRect; State: TOwnerDrawState);beginwith ListBox2.Canvas dobeginFillRect(Rect);Font.Size := 12;if Index mod 2 =0 ThenbeginFont.Name := '宋体';Font.Color := Clred;endelsebeginFont.Name := '隶书';Font.Color := Clgreen;end;TextOut(Rect.Left+1, Rect.Top+1,ListBox2.Items[Index]);end;end;
procedure TForm1.ListBox2MeasureItem(Control: TWinControl; Index: Integer;var Height: Integer);beginwith ListBox1.Canvas dobeginFont.Size := 12;if Index mod 2 =0 ThenbeginFont.Name := '黑体';Font.Color := Clred;endelsebeginFont.Name := '隶书';Font.Color := Clgreen;end;Height := TextHeight('Wg') + 2;end;end;

 


---- 此程序在Windows95、Delphi4.0环境下运行通过。