我想用dbgrid显示数据,但是显示时有规则,如:某一个单元格的字体需要显示我指定颜色啊
等,还有就是一行的数据我要自定显示等,向高手求救啊

解决方案 »

  1.   

    http://borland.mblogger.cn/aiirii/category/463.aspx
      

  2.   

    单元格颜色:
    procedure Tpxsqdgl.all_dbgDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
      zt,s:string;
    begin
      if column.FieldName='zt' then
      begin
        zt:=column.Field.AsString;
        if zt='1' then s:='      '
        else if zt='2' then s:='已审批'
             else if zt='0' then s:='已作废'
                  else s:='未知';
        all_dbg.Canvas.Font.Color := clRed;      //颜色
        all_dbg.Canvas.TextRect(Rect,Rect.Left+2,Rect.Top+2,s);
        all_dbg.Canvas.Font.Color := clBlack;
      end;
    end;
      

  3.   

    行颜色
    procedure Tls.sy_dbgDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if query.FieldByName('dwmc').asstring=login.bm1 then
        sy_dbg.Canvas.Font.Color:=clyellow;         //颜色  sy_dbg.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;