Problem getting Timer to work

Penfound

Active Member
Licensed User
Longtime User
At least the way I want it to:) I'm trying to write a simple fruit machine app for psychology study. Without the timer bit I can get everything to work properly but I really wanted the reels to be selected one after the other at about 950 ms.

I have initised the time with an interval of 950

The part of my code giving problems is...

Timer1.Enabled = True
Do While GlobalCounter <=4
Select Case GlobalCounter
Case 1
reel1=Rnd(0,9)
filename = "image" & reel1 & ".png"
ReelViews(0).Bitmap = LoadBitmap(File.DirAssets, filename)
Case 2
reel2=Rnd(0,9)
filename = "image" & reel2 & ".png"
ReelViews(1).Bitmap = LoadBitmap(File.DirAssets, filename)
Case 3
reel3=Rnd(0,9)
filename = "image" & reel3 & ".png"
ReelViews(2).Bitmap = LoadBitmap(File.DirAssets, filename)
Case 4
reel4=Rnd(0,9)
filename = "image" & reel4 & ".png"
ReelViews(3).Bitmap = LoadBitmap(File.DirAssets, filename)
End Select
Loop
Timer1.Enabled = False

Sub Timer1_tick
GlobalCounter = GlobalCounter + 1
End Sub

It don't work 'cos I broked it somewhere. Can anyone help please?
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
Please use [ code ] [ /code ] tags (without spaces) when posting code.
Correct code:
B4X:
Sub Timer1_Tick
Select Case GlobalCounter
Case 1
reel1=Rnd(0,9)
filename = "image" & reel1 & ".png"
ReelViews(0).Bitmap = LoadBitmap(File.DirAssets, filename)
Case 2
reel2=Rnd(0,9)
filename = "image" & reel2 & ".png"
ReelViews(1).Bitmap = LoadBitmap(File.DirAssets, filename)
Case 3
reel3=Rnd(0,9)
filename = "image" & reel3 & ".png"
ReelViews(2).Bitmap = LoadBitmap(File.DirAssets, filename)
Case 4
reel4=Rnd(0,9)
filename = "image" & reel4 & ".png"
ReelViews(3).Bitmap = LoadBitmap(File.DirAssets, filename)
Timer1.Enabled = False
End Select
 
Upvote 0

mc73

Well-Known Member
Licensed User
Longtime User
A small opt could be this:
B4X:
'somewhere in globals
dim reel(4) as int 

' in the startSpin procedure
globalCounter=0
Timer1.Enabled = True


sub Timer1_tick
    dim fileName as string
    reel(globalCounter)=rnd(0,9)
    filename="image" & reel(globalCounter) & ".png"    
    reelViews(globalCounter).bitmap=LoadBitmap(File.DirAssets, filename)
    globalCounter=globalCounter+1
    if globalCounter=4 then
        timer1.enabled=false
    end if
end sub
 
Upvote 0
Top