主题:表单在启动时,如果条件不满足,能自行关闭吗?
sheyycy
[专家分:30] 发布于 2009-10-17 08:31:00
例如,我在表单的Init事件中加入以下代码:
文件="C:\1.Doc"
if .not.file(文件)
this.release
else
this.设置 && 调用表单的自定义方法
endif
但即使文件不存在,表单还是被打开。我想让它自行关闭,能做到吗?
回复列表 (共8个回复)
沙发
cqf8340 [专家分:1810] 发布于 2009-10-17 15:31:00
文件="C:\1.Doc"
if .not.file(EVALUATE(文件))
this.release
else
this.设置 && 调用表单的自定义方法
endif
板凳
Gleam [专家分:3100] 发布于 2009-10-17 15:51:00
在表单的load事件中加入:
文件="C:\1.Doc"
if .not.file(文件)
retrun .f.
else
this.设置 && 调用表单的自定义方法
endif
这样才能自动退出。
3 楼
dfwxj [专家分:270] 发布于 2009-10-18 21:51:00
将楼上的前段代码放LOAD里即可,即条件不满足直接不干了
4 楼
lbscyb [专家分:4780] 发布于 2009-10-19 00:22:00
最好是在调用这个表单之前判断:
文件="C:\1.Doc"
if !file(文件)
return &&也可以调用其他的表单,如设置表单
endif
do form .........
5 楼
sywzs [专家分:5650] 发布于 2009-10-19 06:53:00
编辑一个 PRG 文件作为程序的主文件,经判断之后,决定程序是否打开表单或退出程序。
6 楼
jinlonggao [专家分:17130] 发布于 2009-10-19 10:23:00
Gleam真棒,回答了我一直没有解决的问题.谢谢啦!
7 楼
Gleam [专家分:3100] 发布于 2009-10-19 11:57:00
呵呵... ...
其实只要在load事件中出现:retrun .f. 那么表单就会自动退出。
所以,在load事件中的判断,尽可能不要使用 retrun .f.,除非是有目的让程序退出。
另外,在表单的数据环境中的init事件中也可以进行控制程序在条件不满足的时候是否运行。不过在数据环境中添加自动退出代码我只在单窗口程序下使用过,多窗口的情况我就不清楚了。
8 楼
sheyycy [专家分:30] 发布于 2009-10-20 00:39:00
谢谢各位相助。
在此期间,我也找到了办法:
在表单中设置一个属性(或公用变量),
在INIT事件中,判断当条件不成立时,赋值.F.
在ACTIVATE事件中,根据.F.就退出。
不过,表单会闪一下,界面不是太好。
我来回复