ADODataSet里的AfterScroll的事件真的很麻烦...比如:数据集里有19条数据...光标移一下...大概要执行24遍...怎么会这样...执行代码越多...速度越慢我就想当光标移动时...执行那段代码1遍...
有什么方法呢???

解决方案 »

  1.   

    一定有其他的事件触发了afterscroll,检查一下,移动光标时是否触发什么事件了
      

  2.   

    看看你
    BeforeScroll与AfterScroll中是否有事件!
    你断点调一下不就行了!
      

  3.   


    procedure TfrmBaseInfo.ADOSetBase2InfoAfterScroll(DataSet: TDataSet);
    var
    iID:Integer;
    begin
      inherited;
            try
              if ADOSetBase2Info.FieldByName('imagepath').asstring  = '' then
                dxGraphicEdit1.ClearPicture
              else
              begin
                if FileExists(getExePath+ADOSetBase2Info.FieldByName('imagepath').asstring) then
                begin              dxGraphicEdit1.Picture.LoadFromFile(getExePath+ADOSetBase2Info.FieldByName('imagepath').asstring);
                  dxGraphicEdit1.Stretch := true;
                end
                else
                  dxGraphicEdit1.ClearPicture;
              end;
            except
              dxGraphicEdit1.ClearPicture;
              
            end;end;
    大概是这样
    我要设了断点
    当移动光标...就执行了24次...应该没有其它滚动事件吧这个控件有 AfterOpen 和 AfterScroll这两个事件...AfterOpen事件和AfterScroll的内容差不多
      

  4.   

    我想应该是继承的原因,把inherited去掉就不会了