怎写这代码?

解决方案 »

  1.   

    这个本身是不行的, Col, Row 属性在 TCustomGrid 中定义为保护, 但在 TDBGrid 中没有公开, 只能使用个后门类实现type
      TGridHacker = class(TCustomGrid) // 后门类, 访问保护成员
      end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      NewRow: Integer;
    begin
      TGridHacker(DBGrid1).Col := 1; 移动列是不存在问题的, 不过 Col的下标是从 0 开始的, 并且固定的列也要计, 像那个指针就在 Col = 0 的位置上  移动行就不能简单的设 Row, 会引起 DataSet 的当前记录不动, 必须相对的移
      NewRow := 5; 新行
      DBGrid1.DataSource.DataSet.MoveBy(NewRow - TGridHacker(DBGrid1).Row); 移动相对行
    end;