当双击一条记录时改变该条记录的颜色,并且该条记录的颜色以后一直保持不变,
好像论坛上一般的DrawColumnCell事件画没有用,改变以后又会恢复回去的,分不够再加

解决方案 »

  1.   

    才20分 啊
    再多点啊,呵呵
    其实就在DrawColumnCell事件里就可以达到你的目的
      

  2.   

    //设置 网格 颜色
    procedure SetDBGridBrushColor(var Ser:TObject;const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState;iiEdit:integer);
    begin
      case iiEdit of
      1:begin
          if (TDBGrid(Ser).DataSource.DataSet.RecNo mod 2=0)  then
          begin
             TDBGrid(Ser).Canvas.Font.Color :=clBlack;  
             TDBGrid(Ser).Canvas.Brush.color:=clInfoBk;
          end;
        end;
      2:begin
          if (DataCol mod 2=0)  then
          begin
             TDBGrid(Ser).Canvas.Font.Color :=clBlack;
             TDBGrid(Ser).Canvas.Brush.color:=clInfoBk;
          end;
        end;
      end;
       if ((State = [gdSelected]) or (State = [gdFocused,gdSelected])) then
          if not TDBGrid(Ser).SelectedRows.CurrentRowSelected then
          begin
              TDBGrid(Ser).Canvas.Font.Color :=clWindow;
              TDBGrid(Ser).Canvas.Brush.Color:=clHighlight; //当前选中单元格显示红色
          end;  TDBGrid(Ser).Canvas.Pen.Mode:=pmMask;
      TDBGrid(Ser).DefaultDrawColumnCell(rect,datacol,column,state);
    end;