我在AfterScroll事件中放入了代码:
  if ads_da.State=dsBrowse then RefreshPohto;
RefreshPohto是一个更改ADOdataset的参数后OPEN的过程。
目的是想只在浏览状态下移动记录时才刷新照片显示。
但事实却不行,在执行 post,updatebacth,delete时系统会在逐行刷新照片。
应该用哪个状态来判断系统当前的操作不适合刷新照片?

解决方案 »

  1.   

    设置一个全局bool参数,初始为false,在beforepost,before delete中设置这个参数为true,这样,在AfterScroll中,判断这个参数的值就行了
      

  2.   

    这办法还可以,但在UpdataBacth时却有问题(因我的程序中UpdataBacth是在一个共享的按钮中执行的,专门做一个整个系统任一时刻都可见的全局变量又有点太隆重了),ado并没有提供此方法相关的befor事件
      

  3.   

    设置一个FORM 的private 範圍的vBytStatus:Byte 参数,初始为0.
    在beforepost 的開始:
    begin
     if vBytStatus<1 then Exit;
     //or:  
     if vBytStatus<>SOMEVALUE then Exit;
     //.......
    end;需要執行beforepost,設定vBytStatus:=1;可以設定不同數值控制不同的控制狀態.
    fyje(冬原) 的方法也可以.
    不用參數控制,舍近求遠!