预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在Delphi中如何动态更改DBGrid的颜色 DBGridHYPERLINK"http://www.cxy.me/com/"控件是一个有许多用户接口的显示数据库的HYPERLINK"http://www.cxy.me/com/"控件,以下的HYPERLINK"http://www.cxy.me/doc/"程序告诉您如何根据显示的内容改变字体的显示颜色。例如,如果一个城市的人口大于200万,我们就让它显示为蓝色。使用的HYPERLINK"http://www.cxy.me/com/"控件事件为DBGrid.OnDrawColumeCell. procedureTForm1.DBGrid1DrawColumnCell(Sender:TObject;constRect:TRect;DataCol:Integer;Column:TColumn;State:TGridDrawState);beginifTable1.FieldByName('Population').AsInteger>20000000thenDBGrid1.Canvas.Font.Color:=clBlue;DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);end; 上面的例子是简单的,但是你可以根据自己的需要扩充,例如字体也变化等,甚至你可以调用画圆的函数在数字上画上一个红色的圆圈。 定义网格背景颜色 在Form1上放置DBGrid1、Query1、DataSource1三个数据库组件,设置相关的属性, 使DBGrid1能显示表中的数据。然后,在DBGrid1的onDrawColumnCell事件中键入以下 代码,然后运行程序,就可以看到神奇的结果了。本代码在Windows98、Delphi5.0环境下调 试通过。 procedureTMainForm.DBGrid1DrawColumnCell(Sender:TObject; constRect:TRect;DataCol:Integer;Column:TColumn;State:TGridDrawState); vari:integer; begin ifgdSelectedinStatethenExit; //定义表头的字体和背景颜色: 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).Columns[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); 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);//画绿色的竖线 end; end;