在ONDRAWDATACELL里面写
  例如
   if dataset.findfield('money').value > 5000 then
     dbgrid1.canvas.font.color = clRed 
   else
     dbgrid1.canvas.font.color = clGreen

解决方案 »

  1.   

    在ONDRAWDATACELL里面写
      例如
       if dataset.findfield('money').value > 5000 then
         dbgrid1.canvas.font.color = clRed 
       else
         dbgrid1.canvas.font.color = clGreen
      加一句:
        dbgrid1.defaultdrawcolumncell(rect,datacol,column,state);
       这样就行
      

  2.   

    DBGrid的DefaultDrawing为False
    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;Field: TField; State: TGridDrawState);
    Var
      p : Integer;
    begin
        p := Table1.FindField('wage').AsInteger;
      //取得当前记录的Wage字段的值。
        if(p < 500) then begin                 
    //程序将根据wage值设置各行的颜色。
          Color := clGreen;
          Font.Style := [fsItalic];      
    //不仅可以改变颜色,还可以改变字体
        end;
        if(p >= 500) And (p < 800) then
          Color := clRed;
         if(p >=800) then begin
          Color := clMaroon;
          Font.Style := [fsBold];
        end;
    end;