如题

解决方案 »

  1.   

    给你一个dbgrid的例子,网上有很多的~~
     
    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;Field: TField; State: TGridDrawState);
      begin
       if Table1.Fieldbyname(′Salary′).value<60 then
       DBGrid1.Canvas.Brush.Color:=clBlue
       else
        DBGrid1.Canvas.Brush.Color:=clRed;
       DBGrid1.Canvas.FillRect(Rect);
       DBGrid1.Canvas.TextOut(Rect.left+2,Rect.top+2,Field.AsString);
      end;
      

  2.   

    dxdbgrid也有类似的draw事件,照着de410修改一下就行了,判断单元格的内容用
    node.strings[列索引]
      

  3.   

    大家看一下我这样写有什么问题,这样不能实现我要的功能,又找不出原因...procedure TFramFluid.dbRedeemCustomDrawCell(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
      AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
      var AText: String; var AColor: TColor; AFont: TFont;
      var AAlignment: TAlignment; var ADone: Boolean);
    begin
      if (AColumn = dbRedeemEN_JREDEEM_BALANCE) and
       (TdxDBGridMaskColumn(AColumn).Field.AsFloat < 0) then
      begin
        AFont.Color := clRed;
      end;
      if (AColumn = dbRedeemEN_REDEEM_RATIO) and
      (qryRedeem.FieldByName('EN_REDEEM_RATIO').Value < 0) then
      begin
        AFont.Color := clRed;
      end;
    end;
      

  4.   

    (qryRedeem.FieldByName('EN_REDEEM_RATIO').Value < 0) then 
    (StrToIntDef(AText,0)<0) then
      

  5.   

    AText数字中有千分符“,”, 要怎么去掉呢?