我的Visual FoxPro应用程序似乎关闭...但仍在任务管理器中运行

时间:2011-06-28 14:17:28

标签: exit visual-foxpro taskmanager

我的FoxPro程序有一个退出按钮和右上角的常用最小/最大/ X按钮,当使用时,程序消失并且似乎已正确关闭。但是,当我检查我的任务管理器时,我发现它仍在运行。

这是我的main.prg文件:

ON SHUTDOWN CLEAR EVENTS
with _screen
.visible = .f.
endwith

DO FORM locations\form1
READ EVENTS
ON SHUTDOWN 

这是我的退出按钮'click'事件的代码:

unlock all
close database all
clear events
RELEASE ALL
quit

我的程序只有一个表单,并且设置为顶级...有关如何解决此问题的任何建议吗?

感谢您的时间和帮助:)

2 个答案:

答案 0 :(得分:2)

如果您正在运行源自IDE(开发环境)的VFP,而您执行_Screen.Visible = .F。,则表示您正在隐藏主VFP屏幕,系统可能会直接返回到该屏幕,因为您可以看不到,你不能正式退出。

在MAIN.PRG中,将以下内容作为单独的“函数”放在底部,该函数将在调用堆栈中可见。

function CloseMyApp
   */ For now, just to "ignore" any errors of any dangling objects trying to get released
   */ and otherwise might be HIDING an error upon shutdown.
   on error *

   */ NOW, clear the event handler and close everything else down
   clear events
   close database all
   close tables
   on shutdown 

   quit
endfunc 

然后,在你的开始,改变你的ON SHUTDOWN来调用这个“功能”......现在,你只发出一个清除事件的命令。这样,您可以在关闭之前完成一堆“清理”操作,而不仅仅是清除读取事件。

ON SHUTDOWN Do CloseMyApp in Main.PRG

答案 1 :(得分:0)

如果单击表单上的“退出”按钮(按钮),表单是否关闭,应用程序是否正确关闭?

如果是,则将按钮称为“cmdExit”,然后将此行添加到表单的“UNLOAD”事件中

THISFORM.cmdExit.click()