如何对delphi的degrid 某一个字段的显示结果的颜色进行控制。
例如:main_degrid 的ys_bj字段,要求:ys_bj的值等于1时查询结果显示红色,值等于2时查询结果显示蓝色,其它字段的查询结果显示不变颜色,不影响。
         

解决方案 »

  1.   

    处理main_degrid的OnDrawColumnCell事件
    参考如下代码:
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      case TDBGrid(Sender).DataSource.DataSet.FieldByName('ys_bj').AsInteger of
        1: TDBGrid(Sender).Canvas.Font.Color := clRed;
        2: TDBGrid(Sender).Canvas.Font.Color := clBlue;
      end;
      TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
      

  2.   

    TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
     
    这段代码总是执行不过,为什么 
      

  3.   

    DBGrid1DrawColumnCell、DBGrid1DrawDataCell你自己要看清楚。
    调试不过就把代码帖出来。