Monday, December 10, 2012

VB6 Code - Mengunci Proses Program (LockWindowUpdate)

LockWindowUpdate merupakan sebagian fungsi API yang terdapat dalam dll inti (core) windows "user32". Kegunaannya adalah untuk mengunci program pada saat terjadi proses, yaitu proses yang tidak ingin kita perlihatkan kepada user. Disamping itu software yang sedang memproses akan memiliki kecepatan yang lebih tinggi dibandingkan tanpa menggunakan fungsi API LockWindowUpdate.

Untuk melihat kinerjanya, buatlah project kemudian copy paste source code dibawah ini:
'--------------------------------------------------------------------
'http://khoiriyyah.blogspot.com
'--------------------------------------------------------------------

Option Explicit

Private Declare Function LockWindowUpdate Lib "USER32" (ByVal hwndLock As Long) As Long

'Tanpa fungsi LockWindowUpdate
Private Sub Command1_Click()

Dim i As Integer
Label1.Caption = 1

For i = 1 To 2000
Label1.Caption = i
DoEvents
Next

End Sub

'Dengan fungsi LockWindowUpdate
Private Sub Command2_Click()

Label1.Caption = 1
MsgBox "Perhatikan sekarang label caption berubah menjadi angka 1"

LockWindowUpdate Form1.hWnd

'Ini identik dengan fungsi di atas Private Sub Command1_Click()
'Hanya ditambahkan fungsi LockWindowUpdate pada line code sebelumnya
Dim i As Integer
For i = 1 To 2000
Label1.Caption = i
DoEvents
Next

LockWindowUpdate 0

MsgBox "Tidak terjadi flicker (gambar berkedip) dan lebih cepat bukan?"

End Sub