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

Delphi
利用Delphi编写Socket通信程序
用Delphi设计“抢三十”游戏
对《QQ列表精灵》源代码分析和仿制
Delphi接口编程的两大陷阱
基于Delphi的组件设计之简单实例
基于Delphi的组件设计之概念
浅述Delphi下的OpenGL图形开发
深入理解Delphi的消息机制
Delphi处理SQL Server多媒体数据
Delphi中为RichEdit加入链接
用Delphi7设计FTP上传软件
利用Delphi编程控制摄像头
用Delphi实现快闪窗体信息提示
Delphi制作图形化的ComboBox
用Delphi设计能携带附件的EMail
Delphi中利用网页打造程序界面
Delphi控件的“拿来主义”
Delphi设计PhotoShop型弹出菜单
用Delphi获取Windows及系统路径
Delphi控制Excel自动生成报表

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 84 ::
收藏到网摘: 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环境下运行通过。