在DBGRid的defaultDrawColumncell方法里写代码。
首先,DBGRid的defaultdraw属性设为false;然后:
procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if Column.Field.FieldName='a' then
    case Column.Field.AsInteger of
      1:  begin
            DBGrid1.Font.Color:=clblack;
            DBGrid1.Canvas.Font.Color :=clBlue;
      .....

解决方案 »

  1.   

    补充:
    改变字体颜色:
          if  xxxx then
            DBGrid1.Canvas.Font.Color := clBlue
          else
            DBGrid1.Canvas.Font.Color := clRed
    改变背景颜色:
          if  xxxx then  
          DBGrid1.Canvas.brush.Color := clBlue
       else
          DBGrid1.Canvas.brush.Color := clRed;
      

  2.   

    在楼上的几个代码后应加上一句这样的吧
    dbgrid1.defaultdrawcolumncell(rect,datacol,column,state);
      

  3.   

    http://www.kebi.com.cn/~jiaorg1981/
    X-SOFT.MYRICE.COM
      

  4.   

    在DBGRid的OnDrawColumncell事件中写一些语句就可以了:
    if Column.Field.FieldName='Name' then
        case Column.Field.AsInteger of
          1:  begin
                DBGrid1.Font.Color:=clblack;
                DBGrid1.Canvas.Font.Color :=clBlue;
      

  5.   

    http://www.kebi.com.cn/~jiaorg1981/
    X-SOFT.MYRICE.COM上面有一个关于STRINGGRID的
    不过
    可能差不多把
      

  6.   

    lwk_hlj(阿凯)说得没错呀,是不是DBGrid没有在Options设为dgRowSelect啊?