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