我的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
我的程序只有一个表单,并且设置为顶级...有关如何解决此问题的任何建议吗?
感谢您的时间和帮助:)
答案 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()