欢迎来到天天文库
浏览记录
ID:33505872
大小:56.18 KB
页数:3页
时间:2019-02-26
《在delphi中如何动态更改dbgrid的颜色》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在Delphi中如何动态更改DBGrid的颜色 DBGrid控件是一个有许多用户接口的显示数据库的控件,以下的程序告诉您如何根据显示的内容改变字体的显示颜色。例如,如果一个城市的人口大于200万,我们就让它显示为蓝色。使用的控件事件为DBGrid.OnDrawColumeCell.procedureTForm1.DBGrid1DrawColumnCell(Sender:TObject;constRect:TRect;DataCol: Integer;Column:TColumn;State:TGr
2、idDrawState);begin ifTable1.FieldByName('Population').AsInteger>20000000then DBGrid1.Canvas.Font.Color:=clBlue; DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);end; 上面的例子是简单的,但是你可以根据自己的需要扩充,例如字体也变化等,甚至你可以调用画圆的函数在数字上画上一个红色的圆圈。定义网格背景颜色
3、在Form1上放置DBGrid1、Query1、DataSource1 三个数据库组件,设置相关的属性,使DBGrid1能显示表中的数据。然后,在DBGrid1的onDrawColumnCell 事件中键入以下代码,然后运行程序,就可以看到神奇的结果了。本代码在Windows98、Delphi5.0环境下调试通过。 procedureTMainForm.DBGrid1DrawColumnCell(Sender:TObject; constRect:TRect;DataCol:Integer;Co
4、lumn:TColumn;State:TGridDrawState); vari:integer; begin ifgdSelectedinStatethenExit; //定义表头的字体和背景颜色: fori:=0to(SenderasTDBGrid).Columns.Count-1do begin (SenderasTDBGrid).Columns[i].Title.Font.Name:='宋体';//字体 (SenderasTDBGrid).Columns[
5、i].Title.Font.Size:=9;//字体大小 (SenderasTDBGrid).Columns[i].Title.Font.Color:=$000000ff;//字体颜色(红色) (SenderasTDBGrid).Columns[i].Title.Color:=$0000ff00;//背景色(绿色) end; //隔行改变网格背景色: ifQuery1.RecNomod2=0then (SenderasTDBGrid).Canvas.Brush.C
6、olor:=clInfoBk//定义背景颜色 else (SenderasTDBGrid).Canvas.Brush.Color:=RGB(191,255,223);//定义背景颜色 //定义网格线的颜色: DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State); with(SenderasTDBGrid).Canvasdo//画cell 的边框 begin Pen.Color:=$00ff0000;//定义画笔
7、颜色(蓝色) MoveTo(Rect.Left,Rect.Bottom);//画笔定位 LineTo(Rect.Right,Rect.Bottom);//画蓝色的横线 Pen.Color:=$0000ff00;//定义画笔颜色(绿色) MoveTo(Rect.Right,Rect.Top);//画笔定位 LineTo(Rect.Right,Rect.Bottom);//画绿色的竖线 end; end;
此文档下载收益归作者所有