autoyield 屬性
指定 Visual FoxPro 的一個實例是否在執行每行用戶程式代碼時處理暫停的 Windows事件。
語法
ApplicationObject.AutoYield[ = lExpr]
設定
lExpr
指定 Visual FoxPro 的一個實例是否在執行每行用戶程式代碼時處理Windows 事件。lExpr 可以取下列邏輯值:
lExpr 說明
真 (.T.) (默認值)Visual FoxPro 的一個實例在執行每行用戶程式代碼時處理暫停的 Windows 事件。如果lExpr 設定為“真” (.T.),則 Visual FoxPro 的該實例象以前版本的 Visual FoxPro 一樣處理暫停的 Windows 事件。
假 (.F.) Visual FoxPro 的一個實例在執行每行用戶程式代碼時不處理暫停的Windows 事件。
所有暫停的 Windows 事件都放在佇列里,當發出 Doevents 命令或進入等待狀態時才處理佇列中的事件。當 Visual FoxPro 等待用戶輸入時進入等待狀態。WAIT 命令不會創建等待狀態。
說明
當一個表單包含 ActiveX 控制項時,autoyield 屬性應該設定為“假” (.F.)。將AutoYield 設定為“假” (.F.) 可以防止在執行用戶程式代碼時發生 ActiveX 控制項的事件。例如,如果 AutoYield 設定為“真” (.T.),當執行用戶程式代碼時單擊一個ActiveX 控制項,會引起執行該 ActiveX 控制項的一個事件,忽略用戶程式代碼,造成意外或不需要的結果。
當 autoyield 屬性設定為“假” (.F.) 時,會發生以下情況:
在進入等待狀態之後,ActiveX 控制項才處理事件,所以當執行用戶程式代碼時,單擊一個 ActiveX 控制項就沒有任何結果。這對於 Visual FoxPro 控制項是一樣的,例如表格控制項。
當執行用戶程式代碼時,忽略 ON KEY LABEL 命令和滑鼠事件。ON KEYLABEL 命令和滑鼠事件放在佇列中,並且在下次進入等待狀態時被處理。
按 Esc 鍵不會中斷程式的執行。這與將 ESCAPE 設定為 OFF 相同。這時,只有關閉 Visual FoxPro 的這個實例,才能退出無限循環。
不能中斷查詢。
可以切換到其他應用程式,但是當執行用戶程式代碼時不能切換回 VisualFoxPro。