DBGrid数据行改变背景色
时间:2011-10-12
来源:互联网
有没有最简单的方法改变ADOQuery.Next前的那行数据的背景色.除此之外原来的默认样式不变
作者: elangzi 发布时间: 2011-10-12
Delphi(Pascal) code
...... var Form1: TForm1; implementation var iRow:integer; {$R *.dfm} procedure TForm1.ADOQuery1BeforeScroll(DataSet: TDataSet); begin iRow:=ADOQuery1.RecNo; DBGrid1.Refresh; end; procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin if iRow<0 then exit; if ADOQuery1.RecNo=iRow then DBGrid1.Canvas.Brush.Color:=clSkyBlue;//原焦点记录用clSkyBlue颜色显示 DBGrid1.Canvas.FillRect(Rect); DBGrid1.DefaultDrawDataCell(Rect,Field,State); end; ......
作者: gzzai 发布时间: 2011-10-12
有这样一种方式不知道能不能满足你的需求
1.定义private 变量
rowid:integer;或其他类型用于标示一条记录;
2.在执行adoquery.next的事件中写如下代码
rowid:=adoquery.fieldbyname('rowid').value;
dbgrid.refesh;
对dbgrid的ondrawcolumncell事件做如下处理,
if (sender as TDBGrideh).DataSource.DataSet.FieldByName ('rowid').Value=rowid then
(sender as TDBGrideh).Canvas.Brush.Color:=clyellow
else
(sender as TDBGrideh).Canvas.Brush.Style:=bsClear; //如果在用其它样式,可以在此处做适当修改
sender as TDBGrideh).DefaultDrawColumnCell(rect,datacol,column,state);
1.定义private 变量
rowid:integer;或其他类型用于标示一条记录;
2.在执行adoquery.next的事件中写如下代码
rowid:=adoquery.fieldbyname('rowid').value;
dbgrid.refesh;
对dbgrid的ondrawcolumncell事件做如下处理,
if (sender as TDBGrideh).DataSource.DataSet.FieldByName ('rowid').Value=rowid then
(sender as TDBGrideh).Canvas.Brush.Color:=clyellow
else
(sender as TDBGrideh).Canvas.Brush.Style:=bsClear; //如果在用其它样式,可以在此处做适当修改
sender as TDBGrideh).DefaultDrawColumnCell(rect,datacol,column,state);
作者: zhnglicho 发布时间: 2011-10-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28