如题

解决方案 »

  1.   

    procedure TfrmModifyPrice.dxDBGrid1CustomDrawCell(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 cdsDetail.FieldByName('GoodsPrice').AsFloat = 0 then
        AColor := clGradientActiveCaption;
      if AColumn.ColIndex in [3,7] then
        AColor := clWhite;
    end;
      

  2.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);beginif Table1.FieldByName('Population').AsInteger > 20000000 thenDBGrid1.Canvas.Font.Color := clBlue;DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);end;
      

  3.   

    就是在这里:
    procedure TfrmModifyPrice.dxDBGrid1CustomDrawCell(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
     
    end;
    根据一定地条件来画!
      

  4.   

    to songlian77(八國聯軍) 我是dxdbgrid.
    to  arvid_gs(west) 拿出实例来.
    to lwk_hlj(披着狼皮的人) 是否少点东西.
      

  5.   

    参考下面这一段代码,只需要改变一下判断条件,注释的是另一种方式改变前面字体的。
    procedure TForm1.DBGridDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
    {
      if Query1.FieldByName('Col1').AsString <> '' then
        if (gdSelected in State) and (DBGrid1.Focused = True) then
          DBGrid1.Canvas.Font.Color := clWhite
        else
          DBGrid1.Canvas.Font.Color := clTeal;
    }
      if query1.FieldByName('Col1').AsString <> '' then
        dbgrid1.Canvas.Brush.Color := $00E0FFFF
      else
        dbgrid1.Canvas.Brush.Color := clWhite;  if gdSelected in State then
      begin
        dbgrid1.Canvas.Brush.Color := clNavy;
        dbgrid1.Canvas.Font.Color := clWhite;
      end;  dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;