你用了
tdataset.disablecontrols 没有
有的话可能会有你上述问题

解决方案 »

  1.   

    没遇到过,你没搞错?可能是你用的参数的问题,它取得是你的数据集中的前(后)一条记录你用三个edit试一下,分别取出当前记录及前(后)各一条记录的一个字段,就该就知道是怎么回事了。
      

  2.   

    用:
    tdataset.Enablecontrols 看看
      

  3.   

    重新加入一个dbgrid试试,用默认设置
      

  4.   

    把你的grid删了,
    重新加一个,别乱改属性了
      

  5.   

    有可能是有tdataset.disablecontrols 哦,不然就是索引没有选择正确咯
      

  6.   

    我用的ADOQuery
    在Dbgrid的DrawColumnCell
    事件中获得QDOQuery当前记录的某字段值我的目的是
    当Dbgrid选中一行时,把此行的一些信息显示在
    statusbar中,我不知道在选中一行时会发会什么事件
    就在DrawColumnCell中用ADOQuery.Fieldbyname('**').asstring
    的方法这样有什么错误吗?
      

  7.   

    是不是DBgrid先发生DrawColumnCell事件
    再移动数据集的记录呢?
    哪果是这样
    有没有什么好办法解决我的问题呢?
      

  8.   

    我的问题己解决
    DrawColumnCell确实是发生的
    ADOQuery的记录移动之前
    所以我把这句话写在ADOQuery的
    AfterScroll就行了
    现在给分
    谢谢大家!