Delphi的RzDbgrid改变某行的背景色

本想改变符合条件的行的背景色,试了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,单双行颜色就不同了

转载于:https://www.cnblogs.com/OSKnown/p/8568740.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值