我从一个存储过程得到数据并用dbgrid显示,但dbgrid将17.00显示为17,由于我显示的字段数不固定,没有办法从代码中将column的displayfomat进行设置。如何解决!

解决方案 »

  1.   

    该死的Borland打击盗版,俺的机器不能再有Delphi了。
    你看看Delphi的帮助,应该DBGRID地每个Column可以对于DataSet的Field。假设就是DataField属性,是否可以这样:
    TFloatField(dbgrid1.columns[i].DataField).DisplayFormat := '0';
      

  2.   

    在OnDrawColumnCell中重画:
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      with DBGrid1.Canvas do
      if Column.FieldName = 'Field1' then begin
        FillRect(Rect);
        TextOut(Rect.Left+2, Rect.Top+2, Format('%.2f', [Column.Field.AsFloat]));
      end;
    end;或者在存储过程产生数据时先转换成格式过的字符型
      

  3.   

    同意 chechy(简简单单的活)