• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi的RzDbgrid改变某行的背景色

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本想改变符合条件的行的背景色,试了DbgridEh和原生的Dbgrid直接在DrawColumnCell事件中写重绘代码就好了,But在RzDbgrid就不起效果,查了好一会,百度了一大堆,都是千篇一律,就是一个复制粘贴,放弃了

然后重新又看了下这个控件的各个属性,发现DefaultDrawing这个属性,有点怀疑,所以就把他默认的True属性改为了False属性,然后在DrawColumnCell事件中写了代码,发现可以调用了,

But问题又来了,DrawColumnCell事件中写了测试代码,结果死循环了.....

然后又百度了下,才知道这块代码不能这么写,没有写循环条件,所以死循环了

 1 procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
 2   State: TGridDrawState);
 3 begin
 4   With DBGrid1.datasource.dataset do begin
 5     if Round(DBGrid1.DataSource.dataset.fieldbyname(DBGrid1.Columns.Items[2].FieldName).value) = 111  then
 6     begin
 7       DBGrid1.Canvas.brush.Color :=clRed;
 8     end;
 9   end;
10   DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
11 end;

加上循环条件,ok问题解决

PS:AltRowShading设置为True,单双行颜色就不同了


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab批量提取CNN特征发布时间:2022-07-18
下一篇:
最速下降法+Matlab代码发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap