1) DBGrid的DefaultDrawing设成False
2) customized painting in an OnDrawColumnCell event handler or an OnDrawDataCell event handler.

解决方案 »

  1.   

    在OnDrawDataCell里写如下
      if Table1.FieldByName('print').Asboolean then
        DBGrid1.Canvas.Font.Color := clRed
      else
        DBGrid1.Canvas.Font.Color := clBlue;
      

  2.   

    各位大哥:
        我说的是动态的显示行的颜色(不是列的),如下面是一个DBGRID:    是否打印(逻辑型) 
         T                    〈- 这一行显示为 红色
         F                    〈- 这一行显示为 蓝色
         F                    〈- 这一行显示为 蓝色
         T                    〈- 这一行显示为 红色
         .....
      

  3.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
         if T then DBGrid1.Canvas.Brush.Color:=clTeal;
         DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
      

  4.   

    使用RXDBGRID能够十分简单的实现