My friend will be a Bingo game caller at a charity event. They already have the ball-cage, balls, and cards. But - they wanted to be able to:
1. Have a computer program running in which they could MANUALLY track which bingo balls were drawn in a game, and
2. They have a projection system that will display the computer screen so that everyone in the room can see it, so the program should also show the recent numbers called in a very obvious fashion.
So here is that program, now for ALL to use, free of charge (If they have Just Basic).
Code: Select all
' Bingo Caller 2011 v2
NumberOfBalls = 75
DIM Order(NumberOfBalls)
DIM BallStatus(NumberOfBalls)
FontSz = 25
gosub [setVariables]
gosub [setGraphics]
NOMAINWIN
gosub [createMainWindow]
wait
[quit]
confirm "ARE YOU SURE YOU WANT TO QUIT?"; answer$
answer$ = LEFT$(UPPER$(answer$),1)
if answer$ = "Y" then
CLOSE #MAIN
END
else
WAIT
end if
[quitReview]
CLOSE #REVIEW
wait
[reset]
confirm "Are you sure you want to Reset the board?"; answer$
answer$ = LEFT$(UPPER$(answer$),1)
if answer$ = "Y" then
gosub [setVariables]
gosub [resetButtonsToNormal]
gosub [changeTheDisplay]
wait
else
WAIT
end if
[review]
gosub [createReviewWindow]
wait
[undoCall]
gosub [reverseTheNumbers]
gosub [changeTheDisplay]
wait
[B]
wait
[I]
wait
[N]
wait
[G]
wait
[O]
wait
[1]
currentHit = 1
gosub [numberAction]
wait
[2]
currentHit = 2
gosub [numberAction]
wait
[3]
currentHit = 3
gosub [numberAction]
wait
[4]
currentHit = 4
gosub [numberAction]
wait
[5]
currentHit = 5
gosub [numberAction]
wait
[6]
currentHit = 6
gosub [numberAction]
wait
[7]
currentHit = 7
gosub [numberAction]
wait
[8]
currentHit = 8
gosub [numberAction]
wait
[9]
currentHit = 9
gosub [numberAction]
wait
[10]
currentHit = 10
gosub [numberAction]
wait
[11]
currentHit = 11
gosub [numberAction]
wait
[12]
currentHit = 12
gosub [numberAction]
wait
[13]
currentHit = 13
gosub [numberAction]
wait
[14]
currentHit = 14
gosub [numberAction]
wait
[15]
currentHit = 15
gosub [numberAction]
wait
[16]
currentHit = 16
gosub [numberAction]
wait
[17]
currentHit = 17
gosub [numberAction]
wait
[18]
currentHit = 18
gosub [numberAction]
wait
[19]
currentHit = 19
gosub [numberAction]
wait
[20]
currentHit = 20
gosub [numberAction]
wait
[21]
currentHit = 21
gosub [numberAction]
wait
[22]
currentHit = 22
gosub [numberAction]
wait
[23]
currentHit = 23
gosub [numberAction]
wait
[24]
currentHit = 24
gosub [numberAction]
wait
[25]
currentHit = 25
gosub [numberAction]
wait
[26]
currentHit = 26
gosub [numberAction]
wait
[27]
currentHit = 27
gosub [numberAction]
wait
[28]
currentHit = 28
gosub [numberAction]
wait
[29]
currentHit = 29
gosub [numberAction]
wait
[30]
currentHit = 30
gosub [numberAction]
wait
[31]
currentHit = 31
gosub [numberAction]
wait
[32]
currentHit = 32
gosub [numberAction]
wait
[33]
currentHit = 33
gosub [numberAction]
wait
[34]
currentHit = 34
gosub [numberAction]
wait
[35]
currentHit = 35
gosub [numberAction]
wait
[36]
currentHit = 36
gosub [numberAction]
wait
[37]
currentHit = 37
gosub [numberAction]
wait
[38]
currentHit = 38
gosub [numberAction]
wait
[39]
currentHit = 39
gosub [numberAction]
wait
[40]
currentHit = 40
gosub [numberAction]
wait
[41]
currentHit = 41
gosub [numberAction]
wait
[42]
currentHit = 42
gosub [numberAction]
wait
[43]
currentHit = 43
gosub [numberAction]
wait
[44]
currentHit = 44
gosub [numberAction]
wait
[45]
currentHit = 45
gosub [numberAction]
wait
[46]
currentHit = 46
gosub [numberAction]
wait
[47]
currentHit = 47
gosub [numberAction]
wait
[48]
currentHit = 48
gosub [numberAction]
wait
[49]
currentHit = 49
gosub [numberAction]
wait
[50]
currentHit = 50
gosub [numberAction]
wait
[51]
currentHit = 51
gosub [numberAction]
wait
[52]
currentHit = 52
gosub [numberAction]
wait
[53]
currentHit = 53
gosub [numberAction]
wait
[54]
currentHit = 54
gosub [numberAction]
wait
[55]
currentHit = 55
gosub [numberAction]
wait
[56]
currentHit = 56
gosub [numberAction]
wait
[57]
currentHit = 57
gosub [numberAction]
wait
[58]
currentHit = 58
gosub [numberAction]
wait
[59]
currentHit = 59
gosub [numberAction]
wait
[60]
currentHit = 60
gosub [numberAction]
wait
[61]
currentHit = 61
gosub [numberAction]
wait
[62]
currentHit = 62
gosub [numberAction]
wait
[63]
currentHit = 63
gosub [numberAction]
wait
[64]
currentHit = 64
gosub [numberAction]
wait
[65]
currentHit = 66
gosub [numberAction]
wait
[66]
currentHit = 66
gosub [numberAction]
wait
[67]
currentHit = 67
gosub [numberAction]
wait
[68]
currentHit = 68
gosub [numberAction]
wait
[69]
currentHit = 69
gosub [numberAction]
wait
[70]
currentHit = 70
gosub [numberAction]
wait
[71]
currentHit = 71
gosub [numberAction]
wait
[72]
currentHit = 72
gosub [numberAction]
wait
[73]
currentHit = 73
gosub [numberAction]
wait
[74]
currentHit = 74
gosub [numberAction]
wait
[75]
currentHit = 75
gosub [numberAction]
wait
' SUBROUTINES ........................................................................................
[setVariables]
for x = 1 to NumberOfBalls
Order(x) = 0
BallStatus(x) = 0
next x
BallsCalled = 0
CurrentNumberCalled = 0
PreviousNumberCalled = 0
TwoAgoNumberCalled = 0
return
[setGraphics]
open "gr" for graphics as #main
for x = 1 to 75
#main, "down ; fill yellow ; backcolor yellow"
temp$ = "place 15 25 ;\";str$(x)
#main temp$
#main "getbmp bmp 0 0 50 35"
temp$ = "button";x;".bmp"
bmpsave "bmp",temp$
next x
close #main
open "gr" for graphics as #main
for x = 1 to 75
#main, "down ; fill lightgray ; backcolor lightgray"
temp$ = "place 15 25 ;\";str$(x)
#main temp$
#main "getbmp bmp 0 0 50 35"
temp$ = "button";x;"off.bmp"
bmpsave "bmp",temp$
next x
close #main
return
[numberAction]
if BallStatus(currentHit) = 0 then
' number not clicked yet
BallStatus(currentHit) = 1
temp$ = "#MAIN." + str$(currentHit)
temp2$ = "bitmap b" + str$(currentHit) + "off"
print #temp$, temp2$
TEMPNBR = currentHit
gosub [moveTheNumbers]
gosub [changeTheDisplay]
else
' number clicked already
end if
return
[moveTheNumbers]
BallsCalled = BallsCalled + 1
Order(BallsCalled) = TEMPNBR
TwoAgoNumberCalled = PreviousNumberCalled
PreviousNumberCalled = CurrentNumberCalled
CurrentNumberCalled = TEMPNBR
return
[changeTheDisplay]
if BallsCalled = 0 then
print #MAIN.currentCall, "down; fill black"
print #MAIN.currentCall, "color yellow; backcolor black"
print #MAIN.currentCall, "font courier_new ";FontSz+55;" bold"
print #MAIN.currentCall, "place 25 175"
print #MAIN.currentCall, "\ "
print #MAIN.currentCall, "flush"
print #MAIN.previousCall, "down; fill black"
print #MAIN.previousCall, "color red; backcolor black"
print #MAIN.previousCall, "font courier_new ";FontSz+25;" bold"
print #MAIN.previousCall, "place 20 55"
print #MAIN.previousCall, "\ "
print #MAIN.previousCall, "flush"
print #MAIN.previousCall2, "down; fill black"
print #MAIN.previousCall2, "color red; backcolor black"
print #MAIN.previousCall2, "font courier_new ";FontSz+25;" bold"
print #MAIN.previousCall2, "place 20 55"
print #MAIN.previousCall2, "\ "
print #MAIN.previousCall2, "flush"
end if
if BallsCalled > 0 then
if CurrentNumberCalled < 16 then
if CurrentNumberCalled <10 then
DISPLAY$="B ";CurrentNumberCalled
else
DISPLAY$="B";CurrentNumberCalled
end if
end if
if CurrentNumberCalled > 15 and CurrentNumberCalled < 31 then
DISPLAY$="I";CurrentNumberCalled
end if
if CurrentNumberCalled > 30 and CurrentNumberCalled < 46 then
DISPLAY$="N";CurrentNumberCalled
end if
if CurrentNumberCalled > 45 and CurrentNumberCalled < 61 then
DISPLAY$="G";CurrentNumberCalled
end if
if CurrentNumberCalled > 60 then
DISPLAY$="O";CurrentNumberCalled
end if
print #MAIN.currentCall, "down; fill black"
print #MAIN.currentCall, "color yellow; backcolor black"
print #MAIN.currentCall, "font courier_new ";FontSz+55;" bold"
print #MAIN.currentCall, "place 25 175"
print #MAIN.currentCall, "\";DISPLAY$
print #MAIN.currentCall, "flush"
else
print #MAIN.currentCall, "down; fill black"
print #MAIN.currentCall, "color yellow; backcolor black"
print #MAIN.currentCall, "font courier_new ";FontSz+55;" bold"
print #MAIN.currentCall, "place 25 175"
print #MAIN.currentCall, "\ "
print #MAIN.currentCall, "flush"
end if
if BallsCalled > 1 then
if PreviousNumberCalled < 16 then
if PreviousNumberCalled <10 then
DISPLAY$="B ";PreviousNumberCalled
else
DISPLAY$="B";PreviousNumberCalled
end if
end if
if PreviousNumberCalled > 15 and PreviousNumberCalled < 31 then
DISPLAY$="I";PreviousNumberCalled
end if
if PreviousNumberCalled > 30 and PreviousNumberCalled < 46 then
DISPLAY$="N";PreviousNumberCalled
end if
if PreviousNumberCalled > 45 and PreviousNumberCalled < 61 then
DISPLAY$="G";PreviousNumberCalled
end if
if PreviousNumberCalled > 60 then
DISPLAY$="O";PreviousNumberCalled
end if
print #MAIN.previousCall, "down; fill black"
print #MAIN.previousCall, "color red; backcolor black"
print #MAIN.previousCall, "font courier_new ";FontSz+25;" bold"
print #MAIN.previousCall, "place 20 55"
print #MAIN.previousCall, "\";DISPLAY$
print #MAIN.previousCall, "flush"
else
print #MAIN.previousCall, "down; fill black"
print #MAIN.previousCall, "color red; backcolor black"
print #MAIN.previousCall, "font courier_new ";FontSz+25;" bold"
print #MAIN.previousCall, "place 20 55"
print #MAIN.previousCall, "\ "
print #MAIN.previousCall, "flush"
end if
if BallsCalled > 2 then
if TwoAgoNumberCalled < 16 then
if TwoAgoNumberCalled <10 then
DISPLAY$="B ";TwoAgoNumberCalled
else
DISPLAY$="B";TwoAgoNumberCalled
end if
end if
if TwoAgoNumberCalled > 15 and TwoAgoNumberCalled < 31 then
DISPLAY$="I";TwoAgoNumberCalled
end if
if TwoAgoNumberCalled > 30 and TwoAgoNumberCalled < 46 then
DISPLAY$="N";TwoAgoNumberCalled
end if
if TwoAgoNumberCalled > 45 and TwoAgoNumberCalled < 61 then
DISPLAY$="G";TwoAgoNumberCalled
end if
if TwoAgoNumberCalled > 60 then
DISPLAY$="O";TwoAgoNumberCalled
end if
print #MAIN.previousCall2, "down; fill black"
print #MAIN.previousCall2, "color red; backcolor black"
print #MAIN.previousCall2, "font courier_new ";FontSz+25;" bold"
print #MAIN.previousCall2, "place 20 55"
print #MAIN.previousCall2, "\";DISPLAY$
print #MAIN.previousCall2, "flush"
else
print #MAIN.previousCall2, "down; fill black"
print #MAIN.previousCall2, "color red; backcolor black"
print #MAIN.previousCall2, "font courier_new ";FontSz+25;" bold"
print #MAIN.previousCall2, "place 20 55"
print #MAIN.previousCall2, "\ "
print #MAIN.previousCall2, "flush"
end if
return
[resetButtonsToNormal]
for x = 1 to 75
temp$ = "#MAIN." + str$(x)
temp2$ = "bitmap b" + str$(x) + "on"
print #temp$, temp2$
next x
return
[reverseTheNumbers]
select case BallsCalled
case 0
wait
case 1
EnableThisButton = CurrentNumberCalled
CurrentNumberCalled = 0
PreviousNumberCalled = 0
TwoAgoNumberCalled = 0
case 2
EnableThisButton = CurrentNumberCalled
CurrentNumberCalled = PreviousNumberCalled
PreviousNumberCalled = 0
TwoAgoNumberCalled = 0
case 3
EnableThisButton = CurrentNumberCalled
CurrentNumberCalled = PreviousNumberCalled
PreviousNumberCalled = TwoAgoNumberCalled
TwoAgoNumberCalled = 0
case else
EnableThisButton = CurrentNumberCalled
CurrentNumberCalled = PreviousNumberCalled
PreviousNumberCalled = TwoAgoNumberCalled
TwoAgoNumberCalled = Order(BallsCalled - 3)
end select
Order(BallsCalled) = 0
BallsCalled = BallsCalled - 1
temp$ = "#MAIN." + str$(EnableThisButton)
temp2$ = "bitmap b" + str$(EnableThisButton) + "on"
print #temp$, temp2$
BallStatus(EnableThisButton) = 0
return
[createMainWindow]
WindowWidth=1100
WindowHeight=720
UpperLeftX=INT((DisplayWidth-WindowWidth)/2)
UpperLeftY=INT((DisplayHeight-WindowHeight)/2)
GBoxXOrg = 50
GBoxYOrg = 80
GBoxWidth = 300
GBoxHeight = 300
GBoxHorizSeparator = 40
GBoxVertSeparator = 400
GBoxVertSeparator2 = 500
GBoxWidthShrinker = 100
GBoxHeightShrinker = 230
StaticTextXpos = GBoxXOrg + 30
StaticTextYpos = GBoxYOrg - 50
StaticTextWidth = 400
StaticTextHeight = 40
Button1xCoord = 625
Button1yCoord = 30
Button1Width = 50
Button1Height = 30
ButtonVertSeparator = 40
ButtonHorizSeparator = 80
STATICTEXT #MAIN.CNC, "Current Number", StaticTextXpos, StaticTextYpos, StaticTextWidth, StaticTextHeight
STATICTEXT #MAIN.LNC, "Last Numbers Called", StaticTextXpos-30, StaticTextYpos+390, StaticTextWidth, StaticTextHeight
GRAPHICBOX #MAIN.currentCall, GBoxXOrg, GBoxYOrg, GBoxWidth, GBoxHeight
GRAPHICBOX #MAIN.previousCall, GBoxXOrg+GBoxHorizSeparator, GBoxYOrg+GBoxVertSeparator, GBoxWidth-GBoxWidthShrinker, GBoxHeight-GBoxHeightShrinker
GRAPHICBOX #MAIN.previousCall2, GBoxXOrg+GBoxHorizSeparator, GBoxYOrg+GBoxVertSeparator2, GBoxWidth-GBoxWidthShrinker, GBoxHeight-GBoxHeightShrinker
BUTTON #MAIN.ending, "END PROGRAM", [quit], UL, Button1xCoord-250, Button1yCoord+600, Button1Width+100, Button1Height
BUTTON #MAIN.reset, "RESET BOARD", [reset], UL, Button1xCoord-250, Button1yCoord+450, Button1Width+100, Button1Height+100
BUTTON #MAIN.review, "REVIEW CALLS", [review], UL, Button1xCoord-250, Button1yCoord+50, Button1Width+100, Button1Height+100
BUTTON #MAIN.undo, "UNDO A CALL", [undoCall], UL, Button1xCoord-250, Button1yCoord+300, Button1Width+100, Button1Height
BUTTON #MAIN.B, "B", [B], UL, Button1xCoord, Button1yCoord, Button1Width, Button1Height
bmpbutton #MAIN.1, "button1.bmp", [1], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator
bmpbutton #MAIN.2, "button2.bmp", [2], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*2
bmpbutton #MAIN.3, "button3.bmp", [3], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*3
bmpbutton #MAIN.4, "button4.bmp", [4], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*4
bmpbutton #MAIN.5, "button5.bmp", [5], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*5
bmpbutton #MAIN.6, "button6.bmp", [6], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*6
bmpbutton #MAIN.7, "button7.bmp", [7], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*7
bmpbutton #MAIN.8, "button8.bmp", [8], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*8
bmpbutton #MAIN.9, "button9.bmp", [9], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*9
bmpbutton #MAIN.10, "button10.bmp", [10], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*10
bmpbutton #MAIN.11, "button11.bmp", [11], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*11
bmpbutton #MAIN.12, "button12.bmp", [12], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*12
bmpbutton #MAIN.13, "button13.bmp", [13], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*13
bmpbutton #MAIN.14, "button14.bmp", [14], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*14
bmpbutton #MAIN.15, "button15.bmp", [15], UL, Button1xCoord, Button1yCoord+ButtonVertSeparator*15
BUTTON #MAIN.I, "I", [I], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord, Button1Width, Button1Height
bmpbutton #MAIN.16, "button16.bmp", [16], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator
bmpbutton #MAIN.17, "button17.bmp", [17], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*2
bmpbutton #MAIN.18, "button18.bmp", [18], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*3
bmpbutton #MAIN.19, "button19.bmp", [19], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*4
bmpbutton #MAIN.20, "button20.bmp", [20], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*5
bmpbutton #MAIN.21, "button21.bmp", [21], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*6
bmpbutton #MAIN.22, "button22.bmp", [22], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*7
bmpbutton #MAIN.23, "button23.bmp", [23], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*8
bmpbutton #MAIN.24, "button24.bmp", [24], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*9
bmpbutton #MAIN.25, "button25.bmp", [25], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*10
bmpbutton #MAIN.26, "button26.bmp", [26], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*11
bmpbutton #MAIN.27, "button27.bmp", [27], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*12
bmpbutton #MAIN.28, "button28.bmp", [28], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*13
bmpbutton #MAIN.29, "button29.bmp", [29], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*14
bmpbutton #MAIN.30, "button30.bmp", [30], UL, Button1xCoord+ButtonHorizSeparator, Button1yCoord+ButtonVertSeparator*15
BUTTON #MAIN.N, "N", [N], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord, Button1Width, Button1Height
bmpbutton #MAIN.31, "button31.bmp", [31], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator
bmpbutton #MAIN.32, "button32.bmp", [32], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*2
bmpbutton #MAIN.33, "button33.bmp", [33], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*3
bmpbutton #MAIN.34, "button34.bmp", [34], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*4
bmpbutton #MAIN.35, "button35.bmp", [35], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*5
bmpbutton #MAIN.36, "button36.bmp", [36], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*6
bmpbutton #MAIN.37, "button37.bmp", [37], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*7
bmpbutton #MAIN.38, "button38.bmp", [38], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*8
bmpbutton #MAIN.39, "button39.bmp", [39], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*9
bmpbutton #MAIN.40, "button40.bmp", [40], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*10
bmpbutton #MAIN.41, "button41.bmp", [41], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*11
bmpbutton #MAIN.42, "button42.bmp", [42], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*12
bmpbutton #MAIN.43, "button43.bmp", [43], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*13
bmpbutton #MAIN.44, "button44.bmp", [44], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*14
bmpbutton #MAIN.45, "button45.bmp", [45], UL, Button1xCoord+ButtonHorizSeparator*2, Button1yCoord+ButtonVertSeparator*15
BUTTON #MAIN.G, "G", [G], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord, Button1Width, Button1Height
bmpbutton #MAIN.46, "button46.bmp", [46], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator
bmpbutton #MAIN.47, "button47.bmp", [47], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*2
bmpbutton #MAIN.48, "button48.bmp", [48], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*3
bmpbutton #MAIN.49, "button49.bmp", [49], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*4
bmpbutton #MAIN.50, "button50.bmp", [50], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*5
bmpbutton #MAIN.51, "button51.bmp", [51], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*6
bmpbutton #MAIN.52, "button52.bmp", [52], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*7
bmpbutton #MAIN.53, "button53.bmp", [53], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*8
bmpbutton #MAIN.54, "button54.bmp", [54], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*9
bmpbutton #MAIN.55, "button55.bmp", [55], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*10
bmpbutton #MAIN.56, "button56.bmp", [56], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*11
bmpbutton #MAIN.57, "button57.bmp", [57], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*12
bmpbutton #MAIN.58, "button58.bmp", [58], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*13
bmpbutton #MAIN.59, "button59.bmp", [59], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*14
bmpbutton #MAIN.60, "button60.bmp", [60], UL, Button1xCoord+ButtonHorizSeparator*3, Button1yCoord+ButtonVertSeparator*15
BUTTON #MAIN.O, "O", [O], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord, Button1Width, Button1Height
bmpbutton #MAIN.61, "button61.bmp", [61], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator
bmpbutton #MAIN.62, "button62.bmp", [62], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*2
bmpbutton #MAIN.63, "button63.bmp", [63], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*3
bmpbutton #MAIN.64, "button64.bmp", [64], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*4
bmpbutton #MAIN.65, "button65.bmp", [65], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*5
bmpbutton #MAIN.66, "button66.bmp", [66], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*6
bmpbutton #MAIN.67, "button67.bmp", [67], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*7
bmpbutton #MAIN.68, "button68.bmp", [68], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*8
bmpbutton #MAIN.69, "button69.bmp", [69], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*9
bmpbutton #MAIN.70, "button70.bmp", [70], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*10
bmpbutton #MAIN.71, "button71.bmp", [71], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*11
bmpbutton #MAIN.72, "button72.bmp", [72], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*12
bmpbutton #MAIN.73, "button73.bmp", [73], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*13
bmpbutton #MAIN.74, "button74.bmp", [74], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*14
bmpbutton #MAIN.75, "button75.bmp", [75], UL, Button1xCoord+ButtonHorizSeparator*4, Button1yCoord+ButtonVertSeparator*15
for x = 1 to 75
' ex: loadbmp "b1on", "button1.bmp"
temp$ = "b" + str$(x) + "on"
temp2$ = "button" + str$(x) + ".bmp"
loadbmp temp$, temp2$
' ex: loadbmp "b1off", "button1off.bmp"
temp$ = "b" + str$(x) + "off"
temp2$ = "button" + str$(x) + "off.bmp"
loadbmp temp$, temp2$
next x
loadbmp "b1on", "button1.bmp"
loadbmp "b1off", "button1off.bmp"
open "Bingo Caller 2010" FOR WINDOW AS #MAIN
print #MAIN, "trapclose [quit]"
PRINT #MAIN.reset, "!font courier_new ";Font-13;" bold"
PRINT #MAIN.ending, "!font courier_new ";FontSz-13;" bold"
PRINT #MAIN.review, "!font courier_new ";FontSz-13;" bold"
PRINT #MAIN.undo, "!font courier_new ";FontSz-13;" bold"
PRINT #MAIN.B, "!font courier_new ";FontSz;" bold"
PRINT #MAIN.I, "!font courier_new ";FontSz;" bold"
PRINT #MAIN.N, "!font courier_new ";FontSz;" bold"
PRINT #MAIN.G, "!font courier_new ";FontSz;" bold"
PRINT #MAIN.O, "!font courier_new ";FontSz;" bold"
print #MAIN.CNC, "!font courier_new ";FontSz-5;" bold"
print #MAIN.LNC, "!font courier_new ";FontSz-5;" bold"
print #MAIN.currentCall, "down; fill black"
print #MAIN.currentCall, "color yellow; backcolor black"
print #MAIN.currentCall, "font courier_new ";FontSz+55;" bold"
print #MAIN.currentCall, "place 25 175"
print #MAIN.previousCall, "down; fill black"
print #MAIN.previousCall, "color red; backcolor black"
print #MAIN.previousCall, "font courier_new ";FontSz+25;" bold"
print #MAIN.previousCall, "place 20 55"
print #MAIN.previousCall2, "down; fill black"
print #MAIN.previousCall2, "color red; backcolor black"
print #MAIN.previousCall2, "font courier_new ";FontSz+25;" bold"
print #MAIN.previousCall2, "place 20 55"
return
[createReviewWindow]
BUTTON #REVIEW.closeWindow, "CLOSE WINDOW", [quitReview], UL, Button1xCoord-250, Button1yCoord+600, Button1Width+150, Button1Height
STATICTEXT #REVIEW.numbersCalled, "Numbers Called", StaticTextXpos, StaticTextYpos, StaticTextWidth, StaticTextHeight
GRAPHICBOX #REVIEW.gbox, GBoxXOrg, GBoxYOrg, GBoxWidth+600, GBoxHeight-200
open "Bingo Caller 2010" FOR WINDOW AS #REVIEW
print #REVIEW, "trapclose [quitReview]"
print #REVIEW.closeWindow, "!font courier_new ";FontSz-11;" bold"
print #REVIEW.numbersCalled, "!font courier_new ";FontSz-5;" bold"
print #REVIEW.gbox, "fill white; flush; vertscrollbar on; horizscrollbar on"
NumbersThatWereCalled$=""
NumbersFlag = 0
for x=1 to NumberOfBalls
if Order(x)<>0 then
if NumbersFlag = 0 then
NumbersThatWereCalled$ = str$(Order(x))
NumbersFlag = 1
else
NumbersThatWereCalled$ = NumbersThatWereCalled$;", ";str$(Order(x))
end if
end if
next x
print #REVIEW.gbox, "down; fill white"
print #REVIEW.gbox, "font courier_new ";FontSz+15;" bold"
print #REVIEW.gbox, "place 25 50"
print #REVIEW.gbox, "\";NumbersThatWereCalled$
print #REVIEW.gbox, "flush"
return