如何在dbgrid刷新后将光标定位在原来那条记录上。(注意:此时数据集中的数据已经有所增减)
   各位高手帮帮忙呀!

解决方案 »

  1.   

    把它的关键字值记下来
    刷新后再用locate定位就可以了
    只有这个办法
      

  2.   

    使用函数 GetBookMark, 具体可以查阅DELPHI 的HELP。
      

  3.   

    假设DBGrid的数据源是ADOTable1,ADOTable1中有个字段是‘编号’。var CurID:string
    begin
      CurID:=ADOTable1['编号'];//取得当前记录的编号
      ...//数据库增减操作
      ADOTable1.Locate('编号',CurID,[]);//定位到增减之前的位置
    end;
      

  4.   

    在刷新前将 j:=table1.RecNo;
    在刷新后  table1.First;
               table1.MoveBy(j-1);
      

  5.   

    TbookMark
    var
    i:tbookMark
    首行定位在这一行记录
    with query1 do
    begin
    i:=getbook;记录位置
    refresh
    gotobook(i)//回到原来的记录
    FreeBookMark(i)
    end;