首页 > 试题

vfp是什么

更新时间:2022-11-16 03:38:30 阅读: 评论:0

四年级下册数学-椭圆的极坐标方程公式


2022年11月16日发(作者:非主流个性网名)

"不能退出VisualFoxPro"信息

是否曾不断的试着关闭你的应用程序,而得到的回答是不能退出?在这里成为

故事.

你开发了一个应用程序并将它交会给你的用户.一切正常.但是突然你接到一个

电话.用户试着关闭应用程序,但所得到的信息是:"不能退出VisualFoxPro"(参

见图1).为什么?因为应用程序仍然在事件循环中.

图1:恐怖的不能退出信息

在应用程序某一地方,你可能有类似下面的代码:

READEVENTS

一但在程序中发布了事件循环(READEVENTS命令),在退出事件循环前,你就

不能退出VFP.要清除事件循环,发布一条CLEAREVENTS命令.只要用户想

关闭应用程序时(如,从系统菜单中选择了"关闭"或"退出:),你可以正常的执行一

条CLEAREVENTS.

但是如果用户试着单击窗口标题栏中的关闭按钮时,会发生什么情况呢?或者用

户在应用程序仍然运行着的时候关闭Windows又会怎样?在这些情况下,应用

程序没有机会执行CLEAREVENT.事件循环仍然是活动的,因此出现了不能

退出VFP的信息.

要避免这一点,可使用ONSHUTDOWN命令.该命令的运行方式与VFP的

其它"On"命令(如ONERROR)一样,它指定一个当确定的事件发生时要执行

的行动.在这种情况下,事件是以任何方式试图关闭应用程序.

因此你所要做的只是执行ONSHUTDOWNCLEAREVENTS.应该在应用程序

开始时-发布READEVENTS之前.一但你这样做了,用户决不会再次见到

不能退出信息.当用户单击窗口标题样中的关闭按钮时,程序将执行ON

SHUTDOWN代码,这将会退出事件循环并将控制返回READEVENTS后面

的代码.

什么也没有发生

好了,还不完全.现在试着在VFP开发环境中运行一个.APP.关闭该.APP.

然后试着退出VisualFoxPro.当你用文件菜单中的退出时,没有什么问题,但在

命令窗口打入QUIT或单击窗口标题栏的关闭按钮时.结果是相同的:什么也

没有发生,没有退出VFP,没有错误提示.

为什么?因为ONSHUTDOWN命令任然在起作用,因此在关闭VFP时,VFP

只是简单地执行一条CLEAREVENTS,这对开发环境没有作用并且也没有程

序在运行.

要避免这一点,返回到应用程序中,并添加另一个ONSHUTDOWN命令.这

一次,仅仅是不带任何子句的ONSHUTDOWN.将它放入清理代码中,就是说,

在READEVENTS后面的某处.它的作用是取消原来的ONSHUTDOWN.

这一对命令-ONSHUTDOWNCLEAREVENTS和ONSHUTDOWN-是想雅

致地关闭应用程序的最小要求.但是,根据应用程序的结构,你可能需要做更多

的事.

清理

在我们自己的应用程序中,文件菜单中的退出菜单项,在发布CLEAREVENTS

命令前执行某些特定的清除代码.特别地,遍历所有已打开表单(通过

_SCREEN的Forms集合),关闭各个表单.在这样做的同时,提示用户处理未

保存的修改.在样做可以让用户决定是否取消关闭应用程序,以避免因清除事件

循环而仍在屏幕上留下一些打开的表单.

无论用户是采用何种方法关闭应用程序,程序需要经过相同的处理过程.要达到

这一点,我们放入以上处理到一个我们叫做FileExit的过程中.文件菜单的的

退出菜单项简单地用DOFileExit调用该过程.在ONSHUTDOWN命令中也

一样.换句话说,现在不是ONSHUTDOWNCLEAREVENTS,而是ON

SHUTDOWNDOFileExit.采用这种方法,无论用户采用什么方法关闭程序,关

闭处理总是相同的.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

不能退出VFP和错误处理

如果你想跳过历史和推理,直接看本文的最后一节.

在我的一般错误处理例程中,我允许用户"忽略-并继续"或退出程序".这些

按钮出现在一个使用一个自由表""来显示并记录错误的表单上.在此

我主要论述我的"退出程序"按钮,因为它是最令我头痛的事之一.

使用"退出"按钮的理由可能是显而易见的,那就是允许用户退出应用程序现时

不至于因"忽略"而引发因第一个错误而产生的连锁错误.例如,因为一个错误

的变量定义值而产生的错误,显示了错误提示表单,而且用户"忽略"错误.而

接着的代码在一个SQL查询中使用该未定义的变量,这样将再次显示错误提示

表单,接着是使用先前的SQL创建的游标而造成的错误(该游标并不存在)...

等等...因此显然需要一个"退出程序"按钮.

在退出按钮的click事件中,我通常只是这样做:

CLEARALL

QUIT

但是因多种原因这不能很好的工作.最常见的是显示"不能退出VisualFoxPro".

因此我在KB中查找是否有什么处理方法,并找到:

克服"不能退出VisualFoxPro"错误

这个MS中的某人写的小程序很好地说明和处理了该问题,但是它依赖于满足

特定的条件.我想要每次都能无条件退出程序.因此我用WinAPI来找出一个

实用的方案.

我的新的事件:

*

*

*概述:直接干掉/退出EXE,不管环境情况

*

CloData

ClearDLLs

DeclareExitThreadinWin32API

ExitThread()

这样它看起来每一次都能正确地工作,几乎没有讨厌的付作用.

编码!

JimHapenney

本文发布于:2022-11-16 03:38:30,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/28593.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:conj
下一篇:古罗马数字
标签:vfp是什么
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图