Tdbgrid中用户拖动鼠标在其他行,但是程序是在更新第一行数据.用户不会修改数据,只是滚动查看,数据在第一行不停的修改,增加记录.部分代码:
ldbquery: TClientDataset;
ldbquery.First;
ldbquery.Edit;
ldbquery.FieldByName('kaiyang').AsDateTime:=now;
出现的情况,用户帮光标移到其他行时(>1),运行此代码,Tdbgrid会滚到的一行,有没有方便的办法.
我是用的线程处理输入数据,很可能会出现同步问题,
在PB中数据窗口,写入数据时,只要参数行数,和列名,和值就可以,不想delphi需要滚到那一行采能修改,麻烦 .
诸位有没有好的方法

解决方案 »

  1.   

    ldbquery: TClientDataset;
    ldbquery.First;//这行去掉。
    ldbquery.Edit;
    ldbquery.FieldByName('kaiyang').AsDateTime:=now;
      

  2.   

    linzhisong(無聊) ( ) 信誉:100 
    ldbquery: TClientDataset;
    ldbquery.First;//这行去掉。
    ldbquery.Edit;
    ldbquery.FieldByName('kaiyang').AsDateTime:=now;
    如果去掉这行 ,数据不是写道用户滚动的那一行吗,我说得所有数据写入必须在第一行操作.
      

  3.   


    把当前记录号保存在一个变量中(如recoI),再写下面的。ldbquery.First;//这行去掉。
    ldbquery.Edit;
    ldbquery.FieldByName('kaiyang').AsDateTime:=now;将当前记录移到recoI
      

  4.   

    很明显你的First多余的,放到其他角落里去,呵呵!