注册 登录
编程论坛 VFP论坛

一个顶层表单加上一个菜单再+上几个普通表单, 部分代码疑问

ljlhpop 发布于 2022-05-15 20:08, 2058 次点击
请问各位老师傅,,下面是最简单的案例,一个顶层表单加上一个菜单再+上几个普通表单,
代码这么写可以吗? 主要是顶层表单MAIN里面Destroy 和 Unload 里面都有 clear events ,,这样是否可以?

启动PRG 文
clear all
set sysmenu off
set date to ansi
set century on
_screen.visible=.f.
do form MAIN
read events
ON SHUTDOWN do quitall.prg
set sysmenu on
clear
close all

Quitall.prg 文件
IF MESSAGEBOX("确实要退出FOXPRO 吗",4+32,"提示")=6
    CLEAR EVENTS
    QUIT
ENDIF

顶层表单
MAIN-- Load
do renshi.mpr with this,.t.
application.visible=.f.

MAIN-- Destroy
application.visible=.t.
clear events

MAIN -Unload
clear events
quit
12 回复
#2
laowan0012022-05-15 20:15
代码都有了,试下不就清楚了

我是在Destroy 里clear events
#3
ljlhpop2022-05-15 20:26
回复 2楼 laowan001
请问您在UNLOAD 里面不用写代码? 我这个目前正常,就怕遇到奇怪的时候
#4
laowan0012022-05-15 21:31
以下是引用ljlhpop在2022-5-15 20:26:36的发言:

请问您在UNLOAD 里面不用写代码? 我这个目前正常,就怕遇到奇怪的时候

我的UNLOAD 是空的,没有代码
“怕遇到奇怪的时候”,是遇到过什么奇怪的时候吗?
#5
zhken2022-05-15 22:09
主表单的话在Unload 事件里面写clear events ,按事件顺序的话,当load事件不成功时就直接unload了,这时如写在destory会引起迟出异常
#6
hu9jj2022-05-16 07:58
我的clear events代码是写在主表单的ubload事件中的。
#7
ljlhpop2022-05-16 17:34
回复 4楼 laowan001
怕遇到软件不能正常退出....
#8
ljlhpop2022-05-16 17:35
回复 6楼 hu9jj
这么说写在UNLOAD 就行了? 比写在DESTORY 好?
#9
laowan0012022-05-16 18:17
以下是引用ljlhpop在2022-5-16 17:34:35的发言:

怕遇到软件不能正常退出....

试下不就行了,能正常退出就对了,不行就换种方式,不必纠结
#10
zhken2022-05-16 20:25
回复 8楼 ljlhpop
不能说放在那里好,要根据事件顺序来,LOAD成功后-INI事件,退出时 先 DESTORY 再UNLOAD事件。如何LOAD事件出错时 程序就UNLOAD退出了,此时就不能经过DESTORY 事件。没有执行CLEA EVEN,退出也就异常了
#11
laowan0012022-05-17 07:52
以下是引用zhken在2022-5-16 20:25:26的发言:

不能说放在那里好,要根据事件顺序来,LOAD成功后-INI事件,退出时 先 DESTORY 再UNLOAD事件。如何LOAD事件出错时 程序就UNLOAD退出了,此时就不能经过DESTORY 事件。没有执行CLEA EVEN,退出也就异常了

一者,应该保证load事件中的程序不会出错
二者,把有可能出错的事情放到init里是不是就不会出现这些问题
#12
ljlhpop2022-05-18 20:41
回复 11楼 laowan001
多谢各位老师傅指点
#13
gs25367856782022-05-19 09:58
二楼的,正确。我也是这样做的。
1