避免VFP中出现“Cannot Quit Visual FoxPro”

一、出现“Cannot Quit Visual FoxPro”的原因
  第一种原因是:在执行了read event后,read event事件处于活动状态,此时,试图使用系统窗口的关闭按钮退出Visual FoxPro(或Visual FoxPro编写的应用,以下同),则会出现“Cannot Quit Visual FoxPro”。
  在Visual FoxPro3.0中,即使read event事件处于活动状态时,也可以调用Quit直接退出。但是,在Visual FoxPro5.0中,当read event事件处于活动状态时调用Quit则不行,就会出现“Cannot Quit Visual FoxPro”。应先执行clear event关闭read event事件,然后才能正常退出。
  另一种原因是:在Visual FoxPro5.0中,如果在还有活动表单的情况下,无论使用系统窗口的关闭按钮,还是调用Quit,都会出现“Cannot Quit Visual FoxPro”。这时,要正常退出,必须先关闭活动的表单。
  二、避免出现“Cannot Quit Visual FoxPro”的方法
  要避免出现“Cannot Quit Visual FoxPro”,在欲退出之前,要先执行clear event。在Visual FoxPro5.0中还要先关闭活动的表单。
  在Visual FoxPro3.0中,在程序的开头可以加上
  ON SHUTDOWN QUIT
  这样,在欲退出Visual FoxPro时,程序自动直接调用Quit退出,避免出现“Cannot Quit Visual FoxPro”。
  在Visual FoxPro5.0中,程序的开头可以加上类似以下的程序
  ON SHUTDOWN DO MyQuit
  PROC MyQuit
  CLEAR Event
  IF _SCREEN.cFormCount>0
     DIME TmpForm[—SCREEN.FormCount]
     FOR i=1 TO —SCREEN.FormCount
         TmpForm[i]=—SCREEN.Forms(i)
     ENDFOR
     FOR i=1 TO —SCREEN.FormCount
         TmpForm[i].Release
     ENDFOR
  ENDIF
  QUIT
  这样,在欲退出Visual FoxPro时,程序先自动清除read event事件,关闭所有的表单,然后调用Quit正常退出。  
发布了24 篇原创文章 · 获赞 5 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/cdbqss1/article/details/1445133