欢迎来到天天文库
浏览记录
ID:46391387
大小:30.76 KB
页数:44页
时间:2019-11-23
《Delphi中DBGrid 应用全书(一)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在Delphi语言的数据库编程中,DBGrid是显示数据的主要手段之一。但是DBGrid缺省的外观未免显得单调和缺乏创意。其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid外观的目的。通过编程,我们可以改变DBGrid的表头、网格、网格线的前景色和背景色,以及相关的字体的大小和风格。 以下的示例程序演示了对DBGrid各属性的设置,使Delphi显示的表格就像网页中的表格一样漂亮美观。 示例程序的运行: 在Form1上放置DBGrid1、Query1、DataSource1三个数据库组件,设置相关的属性,使DBGrid1能显
2、示表中的数据。然后,在DBGrid1的onDrawColumnCell事件中键入以下代码,然后运行程序,就可以看到神奇的结果了。本代码在Windows98、Delphi5.0环境下调试通过。procedureTMainForm.DBGrid1DrawColumnCell(Sender:TObject; constRect:TRect;DataCol:Integer;Column:TColumn;State:TGridDrawState);vari:integer;begin ifgdSelectedinStatethenExit;//定义表头
3、的字体和背景颜色: fori:=0to(SenderasTDBGrid).Columns.Count-1do begin (SenderasTDBGrid).Columns[i].Title.Font.Name:='宋体';//字体 (SenderasTDBGrid).Columns[i].Title.Font.Size:=9;//字体大小 (SenderasTDBGrid).Columns[i].Title.Font.Color:=$000000ff;//字体颜色(红色) (SenderasTDBGrid).Column
4、s[i].Title.Color:=$0000ff00;//背景色(绿色) end;//隔行改变网格背景色: ifQuery1.RecNomod2=0then (SenderasTDBGrid).Canvas.Brush.Color:=clInfoBk//定义背景颜色 else (SenderasTDBGrid).Canvas.Brush.Color:=RGB(191,255,223);//定义背景颜色//定义网格线的颜色: DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State
5、); with(SenderasTDBGrid).Canvasdo//画cell的边框 begin Pen.Color:=$00ff0000;//定义画笔颜色(蓝色) MoveTo(Rect.Left,Rect.Bottom);//画笔定位 LineTo(Rect.Right,Rect.Bottom);//画蓝色的横线 Pen.Color:=$0000ff00;//定义画笔颜色(绿色) MoveTo(Rect.Right,Rect.Top);//画笔定位 LineTo(Rect.Right,Rect.Bottom);//画绿色的竖
6、线 end;end;2.Delphi5-隔行改变DBGrid网格颜色: 在Form1上放置DBGrid1、Query1、DataSource1三个数据库组件,设置相关的属性,使DBGrid1能显示表中的数据。然后,在DBGrid1的onDrawColumnCell事件中键入以下代码,然后运行程序 procedureTForm1.DBGrid1DrawColumnCell(Sender:TObject;constRect:TRect; DataCol:Integer;Column:TColumn;State:TGridDrawState);va
7、ri:integer;begin ifgdSelectedinStatethenExit; //隔行改变网格背景色: ifadoQuery1.RecNomod2=0then (SenderasTDBGrid).Canvas.Brush.Color:=clinfobk//定义背景颜色 else (SenderasTDBGrid).Canvas.Brush.Color:=RGB(191,255,223); //定义背景颜色 //定义网格线的颜色: DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Co
8、lumn,State); with(SenderasTDBGrid).Canvasdo//画cell的边框 begin Pen.Color:=$00ff0000;
此文档下载收益归作者所有