标题:【求助】vf编好软件发布后,运行软件再退出,发现在任务管理器里并未退出, ...
只看楼主
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
我也知道,用了 READ EVENTS 后 ,要用 CLEAR EVENTS来退出,
我今天测试,确实是 QUIT就能退出?
是不是因为我电脑装了VFP的原因?还是在没装VFP上,用QUIT就不能退出?这个我就不知道。
我在这里只是,说明我的情况,请各位大神,指教、
2015-08-07 12:24
monkey444
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2014-10-26
得分:0 
写quit能退出,可是关机的时候会提示:不能退出 visual fox
2015-08-07 14:40
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:1 
讨论得很热烈啊。我学VFP的时候,得到的结论是酱紫的(不过从来没实践过):READ EVENTS一定要用CLEAR EVENTS来解锁,否则会造成表单虽然释放,但表单对象还在内存里;程序代码的最后(是指最高层次那段代码的最后)写RETURN、CANCEL、QUIT,仅在VFP内部环境中有不同效果。对于已编译成EXE的文件来说,这三者都能造成EXE停止运行,并释放所有对象、变量、库、表等,然后返回到桌面。如果不写这三条命令其一,程序执行完最高层次代码的最后一句时,默认有一条RETURN命令。
2015-08-07 16:28
hepingfly
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:195
专家分:657
注 册:2015-5-21
得分:1 
写quit能退出,可是关机的时候会提示:不能退出 visual fox   
 说明,其中有打开的某程序没有及时关闭。常用的方法有:read event 一定要与 clear event 成对。最终退出'试用' clear all,cancel,quit,  如果是 exe 文件,最后退出时也可以杀灭这个进程等。



星际花草
2015-08-07 16:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
解決的正路是不啟動vfp窗體,而不是隱藏它最後再退出,這個窗體自始至終是多餘的,那就是在任務管理器中一直存在的原因。程序從來就沒用到這個窗體,但啟動了兩個進程,正常退出了操作著的那一個,另一個僵屍則在最後做本來不需要做的動作quit來去掉它。這不叫解決了問題。

授人以渔,不授人以鱼。
2015-08-08 10:35
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用TonyDeng在2015-8-8 10:35:41的发言:

解決的正路是不啟動vfp窗體,而不是隱藏它最後再退出,這個窗體自始至終是多餘的,那就是在任務管理器中一直存在的原因。程序從來就沒用到這個窗體,但啟動了兩個進程,正常退出了操作著的那一個,另一個僵屍則在最後做本來不需要做的動作quit來去掉它。這不叫解決了問題。
既然你说不启动这个窗口,而不是要隐藏他?怎么做才不启动这个窗口呢?请指教?
另外?你说 QUIT是用来杀掉这个窗口的,我还以为用退出我们操作窗口。。
2015-08-09 12:20
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:2 
回复 3楼 monkey444
VFP的表单是一个类似Windows的窗口,也具有主窗口与子窗口的关系,具体表现在表单的 ShowWindow 属性。
按VFP9帮助的说法个人理解:
ShowWindow==0时,表单是一个放在 Visual FoxPro 主窗口中的,属子窗口。
ShowWindow==1时,表单是一个放在顶层窗口中的,也属子窗口。
ShowWindow==2时,表单是一个主窗口
可见,当表单的ShowWindow不是2时,就算你关闭了这个窗口也不一定能同时关闭整个应用。
下面代码中,不管有无使用_screen.Visible=.F.都能正常关闭应用。
程序代码:
** test.prg
*_screen.Visible = .F.
of = CREATEOBJECT("TForm")
of.Show 
READ EVENTS 
RETURN

DEFINE CLASS TForm AS Form
    ShowWindow = 2

    PROCEDURE UnLoad
        CLEAR EVENTS 
    ENDPROC
ENDDEFINE


[ 本帖最后由 吹水佬 于 2015-8-9 16:23 编辑 ]
2015-08-09 16:21
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
顶你们,我觉得讨论这个问题很有意义,因为这问题困扰了不少初学者。
2015-08-09 18:04
monkey444
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2014-10-26
得分:0 
谢谢各位大师帮助!因为你们的高技术和热心,帮我解决了问题!感谢!
2015-08-10 22:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-456128-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.663215 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved