注册 登录
编程论坛 VFP论坛

VFP 表单右上角的关闭按钮最先触发哪些事件

hxy8000 发布于 2023-02-24 11:06, 861 次点击
VFP 表单右上角的关闭按钮最先触发哪些事件?
为确保程序退出前保存数据,使用COMMAND做一个退出并保存数据的按纽。如:
yn=MESSAGEBOX("保存数据并退出?",1+32+0,"关闭系统提示")
IF YN=1
     RELEASE THISFORM &&释放表单,执行该关闭表单命令时,会先后执行Destroy事件、UNload事件
     QUIT &&执行此退出命令时,会先执行Queryunload事件,再直接退出VPF
ENDIF
考虑到很多用户会利用主表单右上角的X按纽来关闭程序,故在Queryunload里放置了保存数据的代码。但发现当点击了X按纽后,还未执行Queryunload内的代码前,系统已经关闭了各数据表的工作区。是不是点击X之后,VFP在执行Queryunload事件前就执行了一些其他关闭工作表等动作??
求:点击X之后执行事件的先后顺序
4 回复
#2
sdta2023-02-24 11:33
自己用MESSAGEBOX("Destroy")放在相应事件中测试一下即可
#3
sdta2023-02-24 11:43
程序代码:
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN

DEFINE CLASS form1 AS form
    DoCreate = .T.
    Caption = "Form1"
    Name = "Form1"

    PROCEDURE Unload
        MESSAGEBOX("Unload")
    ENDPROC

    PROCEDURE QueryUnload
        MESSAGEBOX("QueryUnload")
    ENDPROC

    PROCEDURE Destroy
        MESSAGEBOX("Destroy")
    ENDPROC
ENDDEFINE
#4
sam_jiang2023-02-25 16:39
回复 3楼 sdta
#5
kangss2023-02-25 19:38
回复 3楼 sdta
1