if mdata.MTLOUTDEHdb.value <> mdata.MTLOUTOUT_DS.value then
    begin
      if MessageDlg('确疊ゲэ跑璶硄筁絋粄,琌絋粄э疊?',mtConfirmation,[mbNo,mbYes],0)=mrYes then
      begin
        PassDlg := TpassDlg.Create(Self);
        passdlg.Caption := '喷靡';
        if PassDlg.ShowModal = mrOk then
        begin
          mdata.MTLOUTDEOut_sag.value:= passdlg.OsuserUseName.Value;
        end
        else
          DBEdit7.SetFocus ;
        PassDlg.Free;
        if mdata.MTLOUTDEOut_sag.value= frmmain.UserName then
        begin
          showmessage('块计沮㎝絋粄ぃ琌,Enter絋粄!');
          DBEdit7.SetFocus ;
          abort;
        end;
      end
      else
      begin
         mdata.MTLOUTDEHdb.value:= mdata.MTLOUTOUT_DS.value;
         mdata.MTLOUTDEOut_price.value :=strtofloat(retr_round( mdata.mtloutdesell_price.Value *(1-mdata.MTLOUTDEHdb.value/100)+mdata.mtloutdeo_price.Value,2));
      end;上面代码每变更mdata.MTLOUTDEHdb.value 就会跳出PassDlg,怎样改只需第一次下次就不用了.

解决方案 »

  1.   

    给你一个最通俗的办法,设置一个变量,初始为0,执行上面方法后,加1,再次执行时,如果变量值大于0,退出,不执行或者如果你只需要运行一次改程序,那么就在这个事件末尾,将事件指针设为nil
      

  2.   

    指针??设为空。啥米。我是大一新生。delphi学了个一学期。实在是不懂。怎么用。用在哪。高手回答哈。另外我还要做个delphi结业项目,是“书店管理系统”,我太没得头脑了。界面也丑。
    怎么才能做好呢??   请教哈前辈们。有什么好建议或素材发给  再次感谢前辈们的帮助!!