我想要在一个dbgrid 里的某个列(列类型是 float 实型 )上,把那些小于某个数(如12.5)的数值用特殊的颜色(红)显示出来。以便提醒,用户注意。
请大家给点意见和见解!!!

解决方案 »

  1.   

    在onDrawColumnCell事件中写代码
        value := Field.AsFloat;
        if value<12.5 then
        begin
          dbgrid.Canvas.Brush.Color := clRed;
          dbgrid.Canvas.Font.Color := clBlack;
        end;
      dbgrid.DefaultDrawDataCell(Rect, Field, State);
    记住,要把dbgrid.defaultdrawing置为false
      

  2.   

    sorry,更正:
    在onDrawDataCell事件中写代码
    value := Field.AsFloat;
    if value<12.5 then
    begin
    dbgrid.Canvas.Brush.Color := clRed;
    dbgrid.Canvas.Font.Color := clBlack;
    end;
    dbgrid.DefaultDrawDataCell(Rect, Field, State);
    记住,要把dbgrid.defaultdrawing置为false
      

  3.   

    在onDrawDataCell事件中写代码
    value := Field.AsFloat;
    if value<12.5 then
    begin
        TDBGrid(Sender).Canvas.Brush.Color := clRed;
        TDBGrid(Sender).Canvas.Font.Color := clBlack;
    end;
    TDBGrid(Sender).DefaultDrawDataCell(Rect, Field, State);
      

  4.   

    在onDrawDataCell事件中写代码
    const  Flag=0.001;beginvalue := Field.AsFloat;
    if (12.5-value)>flag then//----浮点数比较
    begin
        TDBGrid(Sender).Canvas.Brush.Color := clRed;
        TDBGrid(Sender).Canvas.Font.Color := clBlack;
    end;
    TDBGrid(Sender).DefaultDrawDataCell(Rect, Field, State);
      

  5.   

    用了以下代码测试没有成功,反尔数据看不到了,是什么原因?在onDrawDataCell事件中写代码
    value := Field.AsFloat;
    if value<12.5 then
    begin
        TDBGrid(Sender).Canvas.Brush.Color := clRed;
        TDBGrid(Sender).Canvas.Font.Color := clBlack;
    end;
    TDBGrid(Sender).DefaultDrawDataCell(Rect, Field, State);