我想实现在DBgrid控件中把满足条件的记录背景变成其它的颜色,而不满足条件的记录不变色。

解决方案 »

  1.   

    if (MoData.Qgck.FieldByName('换算').AsBoolean)and not(gdSelected in state) then
        begin
          with (Sender as TDbGrid).Canvas do
          begin
            Brush.Color:=$00FFFFC1;
            FillRect(Rect);
          end;
        end;
       (Sender as TDbGrid).DefaultDrawColumnCell(Rect,DataCol,Column,State);
      

  2.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
       if ....
       canvas.Brush.Color:=...
       canvas.Font.Color:=...
    end;