我用TDBGridEh来显示表数据,在对数据集进行Edit 或 Insert之前,我先把
DBGridEh.Enabled := False,但此时如果滚动鼠标滚轴键,数据集的状态就变为
Browse,指计也跟着移动.请问在这种情况下如何才能使数据的状态及指针不变(动).

解决方案 »

  1.   

    在修改或者插入时,在adodataset/adoquery/adotable对象中有个BeforeScroll时间,在这里判断如果,dataset.UpdateStatus是插入或者修改则abort;如:if dataset.UpdateStatus in [usModified, usInserted] then
    abort;
      

  2.   

    To ljma(rick):
      在用if dataset.UpdateStatus in [usModified, usInserted] then 之前,Dataset已经
    获取了MouseWheel发出的消息,所以此时的 dataset.UpdateStatus 的状态已经不在[usModified, usInserted],不过我还是要谢谢你提醒一下我在BeforeScroll处理这个问题,
    我现在用一个最笨也是最简单的方法(因为之前还从Windows的消息角度去考虑过),如果我已经按下Edit or Insert button,then Abort it.
      非常感谢.
      

  3.   

    能不能告诉我一个更为可行的方法呢?必定这种为作法只能使指针不移动,但无法使DataSet的状态不变.
      

  4.   

    先看窗体的vertscrollbar下的属性的那个visible是否为True
    如果是FALSE,就改为TRUE,就可以了