主题:[讨论]vfp循環時,為何計時鐘不工作?
有一個疑問,就是為何在一個表單中運行循環時,另一個表單中的計時鐘都不起作用呢?
THIS.INTERVAL=500
IF EVT_BUSY=.F.
THISFORM.RELEASE
ELSE
THISFORM.LABEL1.CAPTION=EVT_LABEL
PP=THISFORM.LABEL1.WIDTH+86
THISFORM.LockScreen=.T.
WITH THISFORM
.MAXWIDTH=PP
.MINWIDTH=PP
.WIDTH=PP
ENDWITH
THISFORM.LockScreen=.F.
DO CASE
CASE BUSY=1
THISFORM.LABEL2.CAPTION="叫单."
CASE BUSY=2
THISFORM.LABEL2.CAPTION="叫单.."
CASE BUSY=3
THISFORM.LABEL2.CAPTION="叫单..."
CASE BUSY=4
THISFORM.LABEL2.CAPTION="叫单...."
CASE BUSY=5
THISFORM.LABEL2.CAPTION="叫单....."
CASE BUSY=6
THISFORM.LABEL2.CAPTION="叫单......"
ENDC
IF BUSY=6
BUSY=1
ELSE
BUSY=BUSY+1
ENDI
ENDIF
THISFORM.REFRESH
&&以上代碼就是一個等待執行的程式,其目的就是讓用戶知道程序進程到哪了,但是主表單的循環沒有完成時,擁有此計時鐘的表單根本就不刷新!我在此段代碼后面不管加還是不加最后一句都是一樣的效果,我用MESSAGEBOX函數測試,此對話框也只會在主表單循環完成后顯示一次(EVT_LABEL為全局變量,會在主表單的循環中變化,我曾經將循環的時間用100000000次來測試,其等待的時間到少有2秒,可是還是不刷新表單!).
THIS.INTERVAL=500
IF EVT_BUSY=.F.
THISFORM.RELEASE
ELSE
THISFORM.LABEL1.CAPTION=EVT_LABEL
PP=THISFORM.LABEL1.WIDTH+86
THISFORM.LockScreen=.T.
WITH THISFORM
.MAXWIDTH=PP
.MINWIDTH=PP
.WIDTH=PP
ENDWITH
THISFORM.LockScreen=.F.
DO CASE
CASE BUSY=1
THISFORM.LABEL2.CAPTION="叫单."
CASE BUSY=2
THISFORM.LABEL2.CAPTION="叫单.."
CASE BUSY=3
THISFORM.LABEL2.CAPTION="叫单..."
CASE BUSY=4
THISFORM.LABEL2.CAPTION="叫单...."
CASE BUSY=5
THISFORM.LABEL2.CAPTION="叫单....."
CASE BUSY=6
THISFORM.LABEL2.CAPTION="叫单......"
ENDC
IF BUSY=6
BUSY=1
ELSE
BUSY=BUSY+1
ENDI
ENDIF
THISFORM.REFRESH
&&以上代碼就是一個等待執行的程式,其目的就是讓用戶知道程序進程到哪了,但是主表單的循環沒有完成時,擁有此計時鐘的表單根本就不刷新!我在此段代碼后面不管加還是不加最后一句都是一樣的效果,我用MESSAGEBOX函數測試,此對話框也只會在主表單循環完成后顯示一次(EVT_LABEL為全局變量,會在主表單的循環中變化,我曾經將循環的時間用100000000次來測試,其等待的時間到少有2秒,可是還是不刷新表單!).