Sleep API Function?? Please help.

Hi Folks,

I am currently creating my first VB6 project(Game of Pairs). The problem that i have is that when i run the code below the sleep function doesn't allow the second button .visible = false. So when you click, the button is not invisible. the first button (case = 1) works fine.

Private Sub Command3_Click(Index As Integer)

Dim X As Integer
Dim W As Integer

NumClick = NumClick + 1

For X = 0 To 15

    If Index = X Then
           
         Select Case NumClick
                Case Is = 1
                    Command3(X).Visible = False
                Case Is = 2
                    Command3(X).Visible = False  '     <=====  it doesn't do this
                    Call Sleep(2000)
                    Call Check_Pairs
         End Select
                   
    End If
   
Next X

If NumClick = 2 Then NumClick = 0 ' reset variable after 2 clicks!
End Sub

I have even tried putting a For X loop in between:

Command3(X).Visible = False

for x = 1 to 500
textbox1.text = "this is a wast of time!!!"
next x

Call Sleep(2000)

Even after this the button doesnt change to invisible! Does anyone know how to fix this??!! Please.





craigpikeAsked:
Who is Participating?
 
aelatikCommented:
Put DoEvents after

Command3(X).Visible = False  '     <=====  it doesn't do this
Doevents
0
 
aelatikCommented:
Doevents lets the system process everything before it continues. Without it your app will mostly not responding.
0
 
SRigneyCommented:
DoEvents causes other events in the queue to be processed first. You may just want to force a refresh of the screen.

               Case Is = 2
                    Command3(X).Visible = False  '     <=====  it doesn't do this
                    Command3.Refresh  ' Not sure if this will work by itself.
                    Form1.Refresh ' This should work, but it the previous line works, then it requires less painting time.
                    Call Sleep(2000)
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
excitebiteCommented:
First off you need to get the API for sleep, which is:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

then just use

Sleep 1000

instead of

Call Sleep(2000)
0
 
excitebiteCommented:
make the 1000 2000.

and remember, 1000ms = 1s... so 2000 is a 2 second wait :P
0
 
enariCommented:
Hi!

One large point stands out in your code ..

I don't see anywhere where you incrrament NumClick.
If numclick is declared outside the procedure, such as a public variable, it should work fine.
If numclick is only used inside Command3_click then you need to declare it as "Static" so that the variable keeps it's value between clicks.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.