万卷书>>电脑书籍>>程序设计>>DELPHI相关>>DELPHI专题文档>>入门技巧

WANJUANSHU.COM

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


 

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


 

procedure TForm1.ListBox2DrawItem(Control:
TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with ListBox2.Canvas do
begin
FillRect(Rect);
Font.Size := 12;
if Index mod 2 =0 Then
begin
Font.Name := '宋体';
Font.Color := Clred;
end
else
begin
Font.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); begin with ListBox1.Canvas do begin Font.Size := 12; if Index mod 2 =0 Then begin Font.Name := '黑体'; Font.Color := Clred; end else begin Font.Name := '隶书'; Font.Color := Clgreen; end; Height := TextHeight('Wg') + 2; end; end;


 

 


 

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

上一页 WanJuanShu.COM 下一页
WANJUANSHU.COM 万卷书