zoukankan      html  css  js  c++  java
  • 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,单双行颜色就不同了

  • 相关阅读:
    20180209-json&pickle&shelve模块
    20180209-shutil模块
    20180209-sys模块
    20180209-os模块
    20180115-Xcode创建多个工程协同开发
    20180108-递归函数
    20180105-Python中dict的使用方法
    Python-编码这趟浑水
    20171218-编程语言的介绍
    20180119-01-RACSignal的基础
  • 原文地址:https://www.cnblogs.com/OSKnown/p/8568740.html
Copyright © 2011-2022 走看看