ListBox的一些特殊用法
文件大小: 5k
源码售价: 10 个金币 积分规则     积分充值
资源说明:在Delphi中,主要通过Canvas画布对象进行绘图,Delphi可以在窗体或组件上绘制出各式各样的图像,通过Canvas的属性将一些图形变为文字,或是将一些文字变为图形;这里我主要是通过Canvas属性来美化列表框ListBox中的列表项: 首先要将ListBox的Style属性设为lbownerDrawFixed,然后再ListBox的OnDrawItem事件上书写代码如下: procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;Rect: TRect; State: TOwnerDrawState);beginwith Control as TListBox dobegin    Canvas.FrameRect(Clientrect);    if odSelected in State then    begin      Canvas.Brush.Color:=clRed;      Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,8,15); //前面四个参数分别是左上顶角和右下顶点坐标,构成一个矩形区域,后面两参数是来设置四个顶角端的小三角大小,为了美观可自行设定      setBkMode(Canvas.Handle,TRANSPARENT );//这个在前面文章中有介绍,是设置透明背景      Canvas.TextOut((Rect.right-Rect.Left) div 2,Rect.Top,Items.Strings[Index]);    end    else    begin      Canvas.Brush.Color:=clSkyBlue;//这里为了列表项和ListBox背景色一致,最好就都设成一样颜色      Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,15,15);      Canvas.TextRect(Rect,Rect.Left,Rect.Top,Items.Strings[Index]);    end;end;end;
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。