如题。代码如下:
procedure TReport_info.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var  tj: Boolean;
begin
{本模块:已打印的,显示黄色}
  inherited;
  with TMyCustomDBGrid(Sender) do
  begin
    tj:=DataLink.Fields[29].AsBoolean;
    if tj then
      Canvas.Brush.Color:=clYellow;
    Canvas.Font.Color:=clBlack;
    canvas.FillRect(rect);
    canvas.TextOut(rect.Left+4,rect.Top+4,column.Field.AsString); // 当显示字段为日期时间型的会出错
  end;
end;非常感谢您的发言。

解决方案 »

  1.   

    procedure TReport_info.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var tj: Boolean;
    begin
    {本模块:已打印的,显示黄色}
      inherited;
      with TMyCustomDBGrid(Sender) do
      begin
      tj:=DataLink.Fields[29].AsBoolean;
      if tj then
      Canvas.Brush.Color:=clYellow;
      Canvas.Font.Color:=clBlack;
      canvas.FillRect(rect);
      if Column.Field.DataType in [ftDate,ftDateTime] then
      canvas.TextOut(rect.Left4,rect.Top+4,FormatDateTime('yyyy-mm-dd hh:nn:ss',column.Field.AsDateTime))
      else
      canvas.TextOut(rect.Left+4,rect.Top+4,column.Field.AsString); 
    // 当显示字段为日期时间型的会出错
      end;
    end;非常感谢您的发言。