本文利用listbox自绘实现了两种特殊效果,其中第两种风格来自c++ builder 研究 www.ccrun.com,老妖用bcb实现了,现在把它转换成delphi代码。 interface uses type public var implementation {$r *.dfm} 文章为作者原创,转载前请先与本人联系,转载请注明文章出处、保留作者信息,谢谢支持! lsbleft.style := lbownerdrawfixed;
演示图片:
//--------------------------------------------------------------------------
unit drawlistitem;
windows, messages, sysutils, variants, classes, graphics, controls, forms,
dialogs, stdctrls, imglist, jpeg, extctrls;
tform1 = class(tform)
lsbright: tlistbox;
imagelist1: timagelist;
statictext1: tstatictext;
lsbleft: tlistbox;
imghouse: timage;
imghousegray: timage;
procedure formcreate(sender: tobject);
procedure lsbrightdrawitem(control: twincontrol; index: integer;
rect: trect; state: townerdrawstate);
procedure lsbrightclick(sender: tobject);
procedure formshow(sender: tobject);
procedure lsbleftdrawitem(control: twincontrol; index: integer;
rect: trect; state: townerdrawstate);
private
{ public declarations }
end;
form1: tform1;
{========================================================================
design by : 彭国辉
date: 2004-11-29
site: http://kacarton.yeah.net/
blog: http://blog.csdn.net/nhconch
email: kacarton@sohu.com
=========================================================================}
procedure tform1.formcreate(sender: tobject);
var
i: integer;
begin
lsbright.style := lbownerdrawfixed;
lsbright.ctl3d := false;
lsbright.itemheight := 50;
lsbright.items.add('c++ builder 研究 www.ccrun.com'#13'致力于bcb的学习探讨和研究'#13'ccrun(老妖)');
lsbright.items.add('编程手札 my developer knowledge base'#13'http://blog.csdn.net/nhconch'#13'天蝎蝴蝶');
for i:=3 to 10 do begin
lsbright.items.add('listbox items of ' + inttostr(i) + #13'second of '
+ inttostr(i) + #13'third of ' + inttostr(i));
end;
lsbleft.ctl3d := false;
lsbleft.itemheight := 90;
lsbleft.items.add('编程手札');
lsbleft.items.add('my developer knowledge base');
lsbleft.items.add('站长:天蝎蝴蝶');