在drawcell事件中写代码咯,看一下帮助文件吧,这些资料应该很多的呀

解决方案 »

  1.   

    procedure Tfrmworkrecord.DBGrid1DrawDataCell(Sender: TObject;
      const Rect: TRect; Field: TField; State: TGridDrawState);
     begin                   //在dbgrid上显示时,atttype=0显示签到,ttype=1显示签退
    if (query1.FieldByName('atttype').asinteger=1) then
       begin
          dbgrid1.Canvas.brush.Color :=clteal;
          dbgrid1.Canvas.font.Color :=clwhite;
          DBGrid1.DefaultDrawDataCell(rect, Field,State);
      end
    else
       begin
          dbgrid1.Canvas.brush.Color :=clbackground;
          dbgrid1.Canvas.font.Color :=clwhite;
          DBGrid1.DefaultDrawDataCell(rect, Field,State);  end;
    这是我用来显示不就颜色的一段代码,你试试
    我是通过字段atttype来区分不同记录的,,你总有区分记录的标志字段吧?
    @_@
      

  2.   

    procedure TfrmTemp.DG_temprawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
        if QryPD.fieldbyname('a').Asfloat<0 then
              with (Sender as TDBGrid).Canvas do
                begin
                  Brush.Color := RGB(254,163,181);
                  FillRect(Rect);
                  TextOut(Rect.Left, Rect.Top, Column.Field.AsString);
                end
          else if QryPD.fieldbyname('a').Asfloat>0 then
              with (Sender as TDBGrid).Canvas do
                begin
                  Brush.Color := RGB(186,221,185);
                  FillRect(Rect);
                  TextOut(Rect.Left, Rect.Top, Column.Field.AsString);
                end
    end; 
    I copy others