5 |
如何处理“不能退出FoxPro”的情况 |
难度系数 êêê |
人气指数 90% |
问题详述
为什么在程序连编后,单击Visual FoxPro的主窗口关闭按钮,提示“不能退出FoxPro”呢?
专家解答
由于在Visual FoxPro中要开始事务处理需要加入一个READ EVENTS语句,在想退出Visual FoxPro前,必须首先使用CLEAR EVENTS来结束事务处理,否则将提示“不能退出FoxPro”。我们知道,在普通表单中,CLEAR EVENTS可以放在表单的Unload事件中执行,但是对于Visual FoxPro主窗口(_Screen),系统一般是不允许你修改其事件过程的,对此,Visual FoxPro提供了一个ON SHUTDOWN命令,该命令用于指定当试图退出 Visual FoxPro时所要执行的命令。
首先来编写一个QuitAll.prg文件,代码如下:
IF MESSAGEBOX("确实要退出FoxPro吗?",4+32,"提示")=6
CLEAR EVENTS &&结束事务处理
QUIT &&关闭Visual FoxPro
ENDIF
在Visual FoxPro的命令窗口中输入:ON SHUTDOWN DO QuitAll.prg
单击主窗口的关闭按钮,这时将出现如图1-6所示的提示窗口,询问是否退出Visual FoxPro。
图1-6 关闭Visual FoxPro时的提示画面
可以将ON SHUTDOWN命令加入到主程序中,请参考问题2的主程序介绍。
专家点评
通过为Visual FoxPro主窗口表单(_Screen)指定事件过程,如在Unload中加入CLEAR EVENTS和QUIT语句,也可以实现ON SHUTDOWN的功能,但是,为主窗口指定事件非常的烦琐,详细方法请参考问题16的介绍。