Control msflexgrid flicker

I have an 80 number msflexgrid that randomly selects 20 numbers and puts a different image
selected cells
I have tried to put a small sleep to control the flicker, but it either does not help or slows the randomize too much.
cannot do a redraw false as the numbers need visually updating as they are selected.
example;
Set .CellPicture = imgHitUnSelected.Picture
What else can i try ?
isnoend2001Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Martin LissConnect With a Mentor Older than dirtCommented:
Here is what I see. All speeds are similar. Change the filename to .mov instead of .txt.
Screen-Recorded2014-01-21-13-35-.txt
0
 
Martin LissOlder than dirtCommented:
0
 
isnoend2001Author Commented:
Thanks martinliss that works good when the whole grid is updated at once,
but this grid has a speed button, where the numbers are shown as they are hit
I will try to put it before and after each number produced    
If mSpeed = 2 Then 'fastest
              Call Sleep(((1 / 3) * 1) * 10)                
            ElseIf mSpeed = 1 Then
                Call Sleep(((5 / 3) * 2) * 10)              
            ElseIf mSpeed = 0 Then
                Call Sleep(((10 / 3) * 3) * 10)              
            End If
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
isnoend2001Author Commented:
Tried this but it crashes vb for some reason
 LockWindowUpdate flexCleo.hWnd
Beep
Set .CellPicture = Me.imgHitSelected.Picture
LockWindowUpdate False

 LockWindowUpdate flexCleo.hWnd
Set .CellPicture = imgHitUnSelected.Picture
 SoundSelect = LoadResData("CLICK", "SOUND") 'v7.4
  PlaySoundData SoundSelect(0), 0, SND_MEMORY Or SND_ASYNC Or SND_NODEFAULT Or SND_LOOP
LockWindowUpdate False
0
 
Martin LissOlder than dirtCommented:
When you say it "crashes vb", what do you mean exactly?

Could you attach your current workbook and tell me exactly, step by step, how to reproduce the problem?
0
 
isnoend2001Author Commented:
Not a workbook it's vb6. not excel
It unloads the vb6 program with a message to send to Microsoft
0
 
Martin LissOlder than dirtCommented:
OK, sorry. Could you attach a zip of your project then?
0
 
isnoend2001Author Commented:
that will take some doing, but i will be back
0
 
isnoend2001Author Commented:
martin the project is attached, but it no longer crashes don' know why
but it still flickers a little
in frmCleo
Public Sub Generate20Numbers
 LockWindowUpdate flexCleo.HWND line 1411
LockWindowUpdate False
to start the project Click bet one then mark at least 3  at least numbers
This will enable the start button to be clicked
For-EE.zip
0
 
Martin LissOlder than dirtCommented:
I did as instructed and 20 numbers turned red in fairly rapid succession. I didn't however see any flickering. Am I doing something wrong?
0
 
isnoend2001Author Commented:
Thanks
Don't understand why you do not see flickering, maybe try clicking the speed button >>>
0
 
isnoend2001Author Commented:
Thanks
Wish it looked that smooth on my pc. wonder why
0
 
Martin LissOlder than dirtCommented:
Try rebooting.
0
 
isnoend2001Author Commented:
Thanks had already tried that to avail.
don't both  these variables need to be true for this msg to fire ?
If mLastBallHitMarkedNumber And mWinningRun Then
 Dim msg As String
           msg = "You won a bonus"
          FadeMessage Me, picBtmMsg, msg, False ', LowerRight
End if
0
 
Martin LissOlder than dirtCommented:
What type of variables are mLastBallHitMarkedNumber and mWinningRun?
0
 
Martin LissOlder than dirtCommented:
Never mind I see that they are Booleans. Did I ever show you how to use Debug? In any case put a breakpoint on that line and when the code gets there see what the values are.
0
 
isnoend2001Author Commented:
yes i know how to that the idea is it has to be a win and the 20th number shown must hit
a selected number
both booleans need to be true  is this written correctly:
If mLastBallHitMarkedNumber And mWinningRun Then
0
 
Martin LissOlder than dirtCommented:
Yes it is written correctly. Here's a little code you can run to test 'And'-ing booleans.

Dim x As Boolean
Dim y As Boolean

MsgBox "Test 1: Both booleans are False"
MsgBox "Result is: " & (x And y)

MsgBox "Test 2: One boolean is True and ne is False"
x = True
MsgBox "Result is: " & (x And y)

MsgBox "Test 3: Both booleans are True"
x = True
y = True
MsgBox "Result is: " & (x And y)

Open in new window


Your If statement could also be written this way.

If mLastBallHitMarkedNumber = True And mWinningRun = True Then

Open in new window

BTW if I were naming those variables I would name them mbLastBallHitMarkedNumber and mbWinningRun. That way I would instantly know that not only are they module-level variables but also that they are Booleans.
0
 
isnoend2001Author Commented:
Thanks for everything MartinLiss I think i have found the boolean problem
mWinningRun was reporting true when it wasn't
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.