VFP表單在被關(guān)閉前能顯示確認(rèn)信息

字號(hào):

首先,讓我們來(lái)看一個(gè)VFP表單的卸載步驟:表單在卸載前,首先要詢問(wèn)表單的QueryUnload事件,然后再卸載表單。也就是說(shuō),QueryUnload事件是表單卸載時(shí)第一個(gè)被觸發(fā)的事件。在 QueryUnload 事件過(guò)程中執(zhí)行 NODEFAULT命令可以阻止表單卸載。這樣我們通過(guò)在QueryUnload 事件中巧妙包含NODEFAULT,就能避免直接卸載表單。
    首先,讓我們來(lái)看一個(gè)VFP表單的卸載步驟:表單在卸載前,首先要詢問(wèn)表單的QueryUnload事件,然后再卸載表單。也就是說(shuō),QueryUnload事件是表單卸載時(shí)第一個(gè)被觸發(fā)的事件。在 QueryUnload 事件過(guò)程中執(zhí)行 NODEFAULT命令可以阻止表單卸載。這樣我們通過(guò)在QueryUnload 事件中巧妙包含NODEFAULT,就能避免直接卸載表單。
    QueryUnload是怎樣被觸發(fā)的呢?當(dāng)在代碼中執(zhí)行 CLEAR WINDOWS,RELEASE WINDOWS 或 QUIT 等命令時(shí)、或者當(dāng)用戶雙擊控制菜單框時(shí)、或者當(dāng)用戶從表單的控制菜單中選擇執(zhí)行“關(guān)閉”命令時(shí),都會(huì)觸發(fā)表單的 QueryUnload 事件。
    先在表單的QueryUnload事件中包含下面代碼:
    *-- 顯示包含“是”、“否”兩個(gè)按鈕的對(duì)話框
    nYesNo = MessageBox("確定要退出嗎?",4+48+256,"提示")
    If nYesNo = 6 &&如果選取了“是”,則退出
     *-- 退出前要執(zhí)行的代碼寫(xiě)在這里,
     *-- 然后執(zhí)行類(lèi)似下面的退出代碼
     ThisForm.Release
    Else &&選取了“否”,不退出
     NODEFAULT
    EndIf
    這樣當(dāng)有卸載表單的事件發(fā)生時(shí),都會(huì)顯示確認(rèn)要退出的對(duì)話框:只有選取“是”,才能卸載表單。
    這樣做是非常有用的,例如我們?yōu)榱吮苊庹诓僮鞯臄?shù)據(jù)沒(méi)有保存就退出,可以在程序中使用這段代碼,至于如何保存數(shù)據(jù),不同的程序采取的方法不盡相同,這里我們不做詳細(xì)討論。