Fungsi sleep menggunakan Sleep Kernel32.dll:
- Mem-freeze GUI (membekukan tampilan)
- Hitungan dalam millisecond
- Tidak mem-freeze GUI
- Hitungan dalam second
Private Sub Sleep(ByVal HowLong As Date)
    Dim endDate As Date
    endDate = DateAdd("s", HowLong, Now)
    While endDate > Now
        DoEvents
    Wend
End SubJika  Anda mau bereksperimen maka buatlah kodenya seperti di bawah ini  kemudian bandingkan antara fungsi sleep Kernel32.dll dengan fungsi sleep  tanpa API. Option Explicit
'Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
    Label1.Caption = "Mulai menjalankan fungsi sleep atau wait"
    Label1.Refresh
    Sleep 5 'sleep/wait/hentikan eksekusi kode ke baris berikutnya selama 5 detik
    Label1.Caption = "Terhenti selama 5 detik"
End Sub
Private Sub Command2_Click()
    Dim frm As New Form1
    frm.Show
End Sub
Private Sub Timer1_Timer()
    Static i As Integer
    Caption = i
    i = i + 1
End Sub
Private Sub Sleep(ByVal HowLong As Date)
    Dim endDate As Date
    endDate = DateAdd("s", HowLong, Now)
    While endDate > Now
        DoEvents
    Wend
End SubDemikianlah seputar fungsi sleep atau wait, menggunakan API dan tanpa menggunakan API. Option Explicit
Private Function Sleep(mSecs As Long) As Double
    Dim Duration!
    Duration! = Timer + mSecs
    Do Until Timer > Duration!
        DoEvents
    Loop
End Function
Private Sub Command1_Click()
    Sleep 0.9
    MsgBox "Test"
End Sub 
0 komentar:
Posting Komentar