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

Delphi
闪动标题栏
制作真正的TopMost窗口
制作类似WinAmp一样的“磁性”窗口
不可移动的窗口示例代码
自制替换指定串函数
Delphi中RichEdit的奥妙
Delphi数据集过滤技巧
为VB应用程序定制浮动提示
DELPHI图形编辑技巧二则
Delphi使用技巧两则
Delphi 3.0中的函数调用模式
Delphi3中制作快速按钮条
Delphi 4增订的Object Pascal
Delphi3.0中的函数调用模式
DCU文件(编译的库单元)的重用
命令行参数的使用
在编译时获得提示
运行时生成控件
任意打印
分行提示

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


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