国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
vb6實現(xiàn)程序延時的幾種方法 | 學(xué)步園

VB6在開發(fā)發(fā)貼機(jī)時,提交數(shù)據(jù)要用到延時程序,讓程延時和等待.

從網(wǎng)上找了三種方法,三種方法以最后一種最好用.第一種如果不DOEVENTS的話,會使人感覺程序無反應(yīng)一樣

有以下方法:

1.使用Windows API函數(shù)Sleep

建一個工程,添加一個TextBox控件和一個CommandButton控件,再將以下代碼復(fù)制到代碼窗口
'聲明:
Private
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private
Sub Command1_Click()
Text1.text = "開始時延3秒"
Sleep 3000
Text1.text
= "時延3秒結(jié)束"
End Sub

2.使用Timer()函數(shù)
這是用的最多的一種方法,也是在VB
聯(lián)機(jī)手冊中所推薦的。添加一個CommandButton控件,再將以下代碼添加到代碼窗口中:

Private Sub
Command2_Click()
Dim Savetime As Single
Text1 = "Timer begin"
Savetime
= Timer '記下開始的時間
While Timer < Savetime + 5 '循環(huán)等待
DoEvents
'轉(zhuǎn)讓控制權(quán),以便讓操作系統(tǒng)處理其它的事件。 -----這個的功能差不多等于掛起,并且等待系統(tǒng)回應(yīng)后把控制
權(quán)返還


Wend
Text1 = "Timer ok"
End Sub

這種方法雖然也很簡單,但卻
有有一個致命缺陷,那就是Timer函數(shù)返回的是從午夜開始到現(xiàn)在經(jīng)過的秒數(shù)。所以Timer返回的最大值也只是60*60*24-1秒,如果從一天的
23:59:58秒開始計時等待5秒,那么程序會永遠(yuǎn)地循環(huán)下去。要進(jìn)行改良,就要加上判斷是否又開始了新的一天,那豈不是太麻煩.

//
上面一段是網(wǎng)上找的資料,其實可以不用timer函數(shù),而是使用timer控件或者second函數(shù),但是second函數(shù)如果是在第55秒后延長5秒的
話,也需要做到上面說的新的一分鐘的判斷,那也麻煩.當(dāng)然,你也可以修改系統(tǒng)的時間,把他改在55秒前,總之還是麻煩。因此可以考慮用timer函數(shù).創(chuàng)
建一個flag(標(biāo)志),初始化flag為0,用timer每秒flag+1,當(dāng)flag2=flag1+5的時候清零,根據(jù)條件判斷執(zhí)行下一命令 和
是否繼續(xù)執(zhí)行循環(huán)。大概的代碼是:

dim flag1,flag2 as integer'該定義應(yīng)該放在最最最上面,flag是全局

'
這部分可以放在command按下按扭的時候,或者onload
flag1=0
flag2=flag1+5

'timer1
部分
if flag2 <> flag1 then
flag1=flag1+1
print flag1

exit sub
else
'flag1=0
timer1.enabled=false
'先清零再做其他事情,包括中斷
timer1.enabled=false等

end if
(代碼可用)

上面的代碼甚至可以一秒判斷一次執(zhí)行一個
不同的命令

if flag2 <> flag1 then
' new part
select case
flag1
case 1: 'Express 1 while the first second
case 2: 'Express 2
while the second second
case 3: 'Express 3 while the third second
case
4: 'Express 4 while the fourth second
....
end select

flag1=flag1+1
exit sub

else
'flag1=0
timer1.enabled=false
'
先清零再做其他事情,包括中斷 timer1.enabled=false等

end if

3.使用
Windows API函數(shù)timeGetTime()
timeGetTime函數(shù)沒有參數(shù),返回值是從開機(jī)到現(xiàn)在所經(jīng)歷的毫秒數(shù),這個毫秒數(shù)是
非周期性遞增的,所以不會出現(xiàn)Timer()函數(shù)出現(xiàn)的問題,而且這種方法的精確性高于上一種方法。添加一個CommandButton控件,再將以下代
碼添加到代碼窗口中:
'聲明
Private Declare Function timeGetTime Lib
"winmm.dll" () As Long

Private Sub Command3_Click()
Dim
Savetime As Double
Text1 = "timeGetTime begin"
Savetime =
timeGetTime '記下開始時的時間
While timeGetTime < Savetime + 5000 '循環(huán)等待
DoEvents
'轉(zhuǎn)讓控制權(quán),以便讓操作系統(tǒng)處理其它的事件。
Wend
Text1 = "timeGetTime end"
End Sub

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB中實現(xiàn)延時(等待)的幾種方法
一個非常好用的VB 延時函數(shù)
VBA延時的三個方法--以及聲明之后,使用sleep報錯的解決方案(declare ptrsaft)
Doevents函數(shù)詳解
利用 timeGetTime 更精準(zhǔn)地計算時間差
timeGetTime(毫秒)與Timer(秒)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服