- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
不能退出VisualFoxPro
不能退出 Visual FoxPro信息
是否曾不断的试着关闭你的应用程序, 而得到的回答是不能退出? 在这里成为故事.你开发了一个应用程序并将它交会给你的用户. 一切正常. 但是突然你接到一个电话. 用户试着关闭应用程序, 但所得到的信息是: 不能退出Visual FoxPro 参见图 1 . 为什么? 因为应用程序仍然在事件循环中.图 1: 恐怖的不能退出信息在应用程序某一地方, 你可能有类似下面的代码:DO MainMenu.MPRREAD EVENTS一但在程序中发布了事件循环 READ EVENTS 命令 , 在退出事件循环前,你就不能退出 VFP. 要清除事件循环,发布一条 CLEAR EVENTS 命令. 只要用户想关闭应用程序时 如,从系统菜单中选择了关闭或退出: ,你可以正常的执行一条 CLEAR EVENTS.但是如果用户试着单击窗口标题栏中的关闭按钮时,会发生什么情况呢? 或者用户在应用程序仍然运行着的时候关闭 Windows 又会怎样? 在这些情况下, 应用程序没有机会执行 CLEAR EVENT. 事件循环仍然是活动的, 因此出现了不能退出 VFP 的信息.要避免这一点, 可使用 ON SHUTDOWN 命令. 该命令的运行方式与 VFP 的其它 On 命令 如 ON ERROR 一样, 它指定一个当确定的事件发生时要执行的行动. 在这种情况下, 事件是以任何方式试图关闭应用程序.因此你所要做的只是执行 ON SHUTDOWN CLEAR EVENTS. 应该在应用程序开始时 - 发布 READ EVENTS 之前. 一但你这样做了, 用户决不会再次见到不能退出信息. 当用户单击窗口标题样中的关闭按钮时, 程序将执行 ON SHUTDOWN 代码, 这将会退出事件循环并将控制返回 READ EVENTS 后面的代码.什么也没有发生好了, 还不完全. 现在试着在 VFP 开发环境中运行一个 .APP. 关闭该 .APP. 然后试着退出 Visual FoxPro. 当你用文件菜单中的退出时,没有什么问题, 但在命令窗口打入 QUIT 或单击窗口标题栏的关闭按钮时. 结果是相同的: 什么也没有发生,没有退出 VFP ,没有错误提示.为什么? 因为 ON SHUTDOWN 命令任然在起作用,因此在关闭 VFP 时,VFP 只是简单地执行一条 CLEAR EVENTS, 这对开发环境没有作用并且也没有程序在运行.要避免这一点, 返回到应用程序中, 并添加另一个 ON SHUTDOWN 命令. 这一次, 仅仅是不带任何子句的 ON SHUTDOWN. 将它放入清理代码中, 就是说, 在 READ EVENTS 后面的某处. 它的作用是取消原来的 ON SHUTDOWN.这一对命令 - ON SHUTDOWN CLEAR EVENTS 和 ON SHUTDOWN - 是想雅致地关闭应用程序的最小要求. 但是, 根据应用程序的结构,你可能需要做更多的事.清理在我们自己的应用程序中, 文件菜单中的退出菜单项,在发布 CLEAR EVENTS命令前执行某些特定的清除代码. 特别地, 遍历所有已打开表单 通过 _SCREEN 的 Forms 集合 , 关闭各个表单. 在这样做的同时, 提示用户处理未保存的修改. 在样做可以让用户决定是否取消关闭应用程序, 以避免因清除事件循环而仍在屏幕上留下一些打开的表单.无论用户是采用何种方法关闭应用程序,程序需要经过相同的处理过程. 要达到这一点, 我们放入以上处理到一个我们叫做 FileExit 的过程中. 文件菜单的的退出菜单项简单地用 DO FileExit 调用该过程. 在 ON SHUTDOWN 命令中也一样. 换句话说,现在不是 ON SHUTDOWN CLEAR EVENTS, 而是 ON SHUTDOWN DO FileExit. 采用这种方法, 无论用户采用什么方法关闭程序,关闭处理总是相同的.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
不能退出 VFP 和错误处理如果你想跳过历史和推理, 直接看本文的最后一节.在我的一般错误处理例程中, 我允许用户 忽略 - 并继续 或退出程序. 这些按钮出现在一个使用一个自由表 errors.dbf 来显示并记录错误的表单上. 在此我主要论述我的 退出程序 按钮, 因为它是最令我头痛的事之一.使用 退出 按钮的理由可能是显而易见的, 那就是允许用户退出应用程序现时不至于因 忽略 而引发因第一个错误而产生的连锁错误. 例如, 因为一个错误的变量定义值而产生的错误, 显示了错误提示表单, 而且用户 忽略 错误. 而接着的代码在一
文档评论(0)