各位大哥能不能教我:在DBGrid中更改某一行数据的颜色,代碼怎麼寫
謝謝了

解决方案 »

  1.   

    我也关注这个问题,之前遇到,没有解决,哈哈,后来用listview来做,通过它的标签图片功能才勉强让客户满意呀,郁闷中……
      

  2.   

    http://www.coderpub.com/View.aspx?fbId=5&Id=2879
      

  3.   

    可我還是想用DBGRID只實現
    能不能解決呀
      

  4.   

    这个以前太多了,搜一下就应该有的procedure TfrmZpGl.DBGridDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
      with DbgridZpNotePad do
      begin
        if datasource.DataSet.FieldByName('zt').asinteger = 0 then  //作废
        begin
          Canvas.Brush.Color:=clRed;              //背景色
          Canvas.Font.Color:=clWhite;               //字体色
        end
        else if datasource.dataset.fieldbyname('zt').asinteger = 2 then //已使用
        begin
          Canvas.Brush.Color:=clGreen;
          Canvas.font.color := ClWhite;
        end;    DefaultDrawColumnCell(Rect,DataCol,Column,State);
    //    THDBGridZpNotePad.DefaultDrawColumnCell(rect,datacol,column,state);
      end;end;
      

  5.   

    這位大哥
    我把你的代碼寫進去了
    可是運行後沒有一點反應呀
    是不是DBGrid 屬性還要設置一下呀
    我把DeafaultDrawing 設置為了False
    也沒有反應
      

  6.   

    别用DBGrid换成DBgridEH,功能又多用着又过YIN,而且还有源码,自己可以修改
      

  7.   

    能不能告訴我DBgridEH在哪裡呀
    好像我沒有裝
      

  8.   

    能不能告訴我Enlib3.0 组件包在哪裡下載呀
      

  9.   

    在dbgrid的DrawColumnCell事件里面, DbgridZpNotePad 就是dbgrid的名字,其他的属性不用设置的
      

  10.   

    filix(传说中的卷心菜)  写的只是针对某一个Cell的,难道没有针对 行的方法?
      

  11.   

    procedure TQueryForm.Query_DBGridDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
      with Query_DBGrid do
      begin
        if ((state=[gdselected])  or (state=[gdselected,gdfocused])) then
        begin
          canvas.Font.Color:=clyellow;
          canvas.Brush.Color:=clnavy;
        end else
        begin
          if QueryDataSource.DataSet.RecNo mod 2<>0 then  //条件
            canvas.Brush.Color:=clwhite    //自己设置的颜色
          else
            canvas.Brush.Color:=clred;     //自己设置的颜色
        end;
        defaultdrawcolumncell(rect,datacol,column,state);
      end;
    end;
      

  12.   

    {设定Grid的不同行颜色显示}
    procedure TfmTotalSum_NCJCSJTJ.cxGrid1DBTableView1CustomDrawCell(
      Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
      AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    var
      str,str1:string;
    begin
      str:=trim(VarAsType(AViewInfo.GridRecord.DisplayTexts[cxGrid1DBTableView1Column4.Index], varString));
      str1:=trim(VarAsType(AViewInfo.GridRecord.DisplayTexts[cxGrid1DBTableView1Column10.Index], varString));
      if str='不合格' then
      begin
         //ACanvas.Canvas.Brush.Color :=clred;
         ACanvas.canvas.Font.Color :=clred;// clblack;
      end
      else if str='合格' then
      begin
       //ACanvas.Canvas.Brush.Color :=clgreen;
       ACanvas.canvas.Font.Color :=clgreen;// clblack;
      end;
      if AViewInfo.Selected then
      begin
        ACanvas.Canvas.Font.Color :=clwhite; //clBlue ;//字体颜色
        ACanvas.Canvas.Brush.Color :=clNavy ;//clwhite;//背景颜色
      end;
      if str1='已上传'then
      begin
        ACanvas.Canvas.Brush.Color :=clGradientActiveCaption   ;
      end;end;