Microsoft Small Basic

Program Listing: ZDP541
'WINDOW
GraphicsWindow.Hide()
GraphicsWindow.Width = 800
GraphicsWindow.Height = 600
GraphicsWindow.Left = (Desktop.Width - 800) / 2
GraphicsWindow.Top = ((Desktop.Height - 67) - 600) / 2
GraphicsWindow.CanResize = "false"
GraphicsWindow.Title = "Scroll Down Bar"

'TRAFFIC_POLICEMAN
handleactive = Controls.AddButton(0 0 0)
Controls.HideControl(handleactive)

'MY_WINDOW
'*'*'*'*'*'*'*'*'*'*'
outter = Shapes.AddRectangle(600, 400)
GraphicsWindow.BrushColor = "navy"
inner = Shapes.AddRectangle(580, 360)

Shapes.Move(outter, 100, 100)
Shapes.Move(inner, 110, 130)

'SCROLL_DOWN_BAR
GraphicsWindow.PenColor = "dodgerblue"
GraphicsWindow.BrushColor = "dodgerblue"
back = Shapes.AddRectangle(25, 356)
Shapes.SetOpacity(back, 50)

GraphicsWindow.PenColor = "cyan"
line = Shapes.AddLine(675.5, 144, 675.5, 474)

GraphicsWindow.PenColor = "orangered"
overline = Shapes.AddLine(675.5, 144, 675.5, 474)
Shapes.HideShape(overline)

GraphicsWindow.BrushColor = "cyan"
handle = Shapes.AddEllipse(25, 25)
GraphicsWindow.PenColor = "cyan"

Shapes.Move(back, 663, 132)
Shapes.Move(handle, 663, 143.5)

'TEXT
GraphicsWindow.FontSize = "15"
GraphicsWindow.FontName = "consolas"
GraphicsWindow.FontBold = "false"
GraphicsWindow.BrushColor = "cyan"
line1 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line2 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line3 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line4 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line5 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line6 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line7 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line8 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line9 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line10 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line11 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line12 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line13 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line14 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line15 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line16 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line17 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line18 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line19 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line20 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line21 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line22 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line23 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line24 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line25 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line26 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line27 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line28 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line29 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")
line30 = Shapes.AddText("bla bla bla bla bla bla bla bla bla bla bla bla bla bla ")

Shapes.Move(line1, 160, 155)
Shapes.Move(line2, 160, 170)
Shapes.Move(line3, 160, 185)
Shapes.Move(line4, 160, 200)
Shapes.Move(line5, 160, 215)
Shapes.Move(line6, 160, 230)
Shapes.Move(line7, 160, 245)
Shapes.Move(line8, 160, 260)
Shapes.Move(line9, 160, 275)
Shapes.Move(line10, 160, 290)
Shapes.Move(line11, 160, 305)
Shapes.Move(line12, 160, 320)
Shapes.Move(line13, 160, 335)
Shapes.Move(line14, 160, 350)
Shapes.Move(line15, 160, 365)
Shapes.Move(line16, 160, 380)
Shapes.Move(line17, 160, 395)
Shapes.Move(line18, 160, 410)
Shapes.Move(line19, 160, 425)
Shapes.Move(line20, 160, 440)
Shapes.Move(line21, 160, 455)
Shapes.Move(line22, 160, 470)
Shapes.Move(line23, 160, 485)
Shapes.Move(line24, 160, 500)
Shapes.Move(line25, 160, 515)
Shapes.Move(line26, 160, 530)
Shapes.Move(line27, 160, 534)
Shapes.Move(line28, 160, 560)
Shapes.Move(line29, 160, 575)
Shapes.Move(line30, 160, 590)

'COVERS
GraphicsWindow.PenColor = "black"
GraphicsWindow.BrushColor = "slateblue"
topouttercover = Shapes.AddRectangle(600, 32)
botouttercover = Shapes.AddRectangle(600, 12)
GraphicsWindow.PenColor = "navy"
GraphicsWindow.BrushColor = "navy"

GraphicsWindow.PenColor = "slateblue"
GraphicsWindow.BrushColor = "slateblue"
leftcover = Shapes.AddRectangle(8, 396)
rightcover = Shapes.AddRectangle(8, 396)

GraphicsWindow.PenColor = "white"
GraphicsWindow.BrushColor = "white"
topcover = Shapes.AddRectangle(600, 100)
botcover = Shapes.AddRectangle(600, 100)

Shapes.Move(topouttercover, 100, 100)
Shapes.Move(botouttercover, 100, 488)
Shapes.Move(leftcover, 102, 102)
Shapes.Move(rightcover, 690, 102)
Shapes.Move(topcover, 100, 0)
Shapes.Move(botcover, 100, 500)

'TITLE
GraphicsWindow.FontSize = 17
GraphicsWindow.FontBold = "true"
GraphicsWindow.BrushColor = "cyan"
title = Shapes.AddText("Inspirational Words!")
GraphicsWindow.BrushColor = "orange"
subtitle = Shapes.AddText("Computer programming is fun!")
Shapes.Move(title, 290, 105)
Shapes.Move(subtitle, 260, 215)
Shapes.HideShape(subtitle)

'FIGURE
GraphicsWindow.PenWidth = 3
GraphicsWindow.PenColor = "black"
GraphicsWindow.BrushColor = "dodgerblue"
head = Shapes.AddEllipse(60, 60)
leftarm = Shapes.AddTriangle(383, 315, 340, 290, 380, 330)
rightarm = Shapes.AddTriangle(415, 325, 420, 340, 480, 365)
leftleg = Shapes.AddTriangle(385, 450, 390, 395, 395, 450)
rightleg = Shapes.AddTriangle(400, 460, 405, 400, 410, 460)
body = Shapes.AddEllipse(50, 90)
GraphicsWindow.BrushColor = "pink"
mouth = Shapes.AddEllipse(20, 20)
GraphicsWindow.PenColor = "dodgerblue"
GraphicsWindow.BrushColor = "dodgerblue"
mouthcover = Shapes.AddRectangle(20, 20)
GraphicsWindow.PenColor = "black"
lip = Shapes.AddLine(385, 290, 405, 290)
GraphicsWindow.PenColor = "black"
GraphicsWindow.BrushColor = "white"
lefteye = Shapes.AddEllipse(20, 20)
righteye = Shapes.AddEllipse(25, 25)
GraphicsWindow.BrushColor = "black"
lefteyeball = Shapes.AddEllipse(10, 10)
righteyeball = Shapes.AddEllipse(13, 13)
GraphicsWindow.BrushColor = "orange"
power = Shapes.AddEllipse(15, 15)
lefthand = Shapes.AddEllipse(16, 16)
righthand = Shapes.AddEllipse(20, 20)
leftfoot = Shapes.AddEllipse(20, 20)
rightfoot = Shapes.AddEllipse(22, 22)

'HIDE_FIGURE
Shapes.HideShape(head)
Shapes.HideShape(lefteye)
Shapes.HideShape(righteye)
Shapes.HideShape(lefteyeball)
Shapes.HideShape(righteyeball)
Shapes.HideShape(mouth)
Shapes.HideShape(mouthcover)
Shapes.HideShape(lip)
Shapes.HideShape(leftarm)
Shapes.HideShape(lefthand)
Shapes.HideShape(rightarm)
Shapes.HideShape(righthand)
Shapes.HideShape(body)
Shapes.HideShape(power)
Shapes.HideShape(leftleg)
Shapes.HideShape(rightleg)
Shapes.HideShape(leftfoot)
Shapes.HideShape(rightfoot)

'POSITION_FIGURE
Shapes.Move(head, 370, 250)
Shapes.Move(body, 373, 305)
Shapes.Move(mouth, 385, 280)
Shapes.Move(mouthcover, 385, 270)
Shapes.Move(lefteye, 375, 260)
Shapes.Move(righteye, 390, 260)
Shapes.Move(lefteyeball, 378, 265)
Shapes.Move(righteyeball, 393, 265)
Shapes.Move(power, 380, 340)
Shapes.Move(lefthand, 330, 280)
Shapes.Move(righthand, 475, 360)
Shapes.Move(leftfoot, 378, 445)
Shapes.Move(rightfoot, 394, 450)

'SHOW_WINDOW
GraphicsWindow.Show()

'SUBROUTINES
'*'*'*'*'*'*'*'*'*'*'*'
'MOUSE_DOWN
GraphicsWindow.MouseDown = md
Sub md

'CLICK_HANDLE
If (Mouse.IsLeftButtonDown) Then
If x > handleleft And x < handleleft + 25 And y > handletop And y < handletop + 25 Then
Sound.PlayClick()
Controls.SetButtonCaption(handleactive, 1)
Shapes.ShowShape(overline)
Shapes.SetOpacity(back, 100)
EndIf
EndIf
EndSub

'MOUSE_MOVE
GraphicsWindow.MouseMove = mm
Sub mm
x = GraphicsWindow.MouseX
y = GraphicsWindow.MouseY

gethandleactive = Controls.GetButtonCaption(handleactive)

handleleft = Shapes.GetLeft(handle)
handletop = Shapes.GetTop(handle)

line1left = Shapes.GetLeft(line1)

'MOVE_HANDLE-TEXT
If gethandleactive = 1 Then
Shapes.Move(handle, handleleft, y - 12.5)
Shapes.Move(line1, line1left, (-y) + 312)
Shapes.Move(line2, line1left, (-y) + 327)
Shapes.Move(line3, line1left, (-y) + 342)
Shapes.Move(line4, line1left, (-y) + 357)
Shapes.Move(line5, line1left, (-y) + 372)
Shapes.Move(line6, line1left, (-y) + 387)
Shapes.Move(line7, line1left, (-y) + 402)
Shapes.Move(line8, line1left, (-y) + 417)
Shapes.Move(line9, line1left, (-y) + 432)
Shapes.Move(line10, line1left, (-y) + 447)
Shapes.Move(line11, line1left, (-y) + 462)
Shapes.Move(line12, line1left, (-y) + 477)
Shapes.Move(line13, line1left, (-y) + 492)
Shapes.Move(line14, line1left, (-y) + 507)
Shapes.Move(line15, line1left, (-y) + 522)
Shapes.Move(line16, line1left, (-y) + 537)
Shapes.Move(line17, line1left, (-y) + 552)
Shapes.Move(line18, line1left, (-y) + 567)
Shapes.Move(line19, line1left, (-y) + 582)
Shapes.Move(line20, line1left, (-y) + 597)
Shapes.Move(line21, line1left, (-y) + 612)
Shapes.Move(line22, line1left, (-y) + 627)
Shapes.Move(line23, line1left, (-y) + 642)
Shapes.Move(line24, line1left, (-y) + 657)
Shapes.Move(line25, line1left, (-y) + 672)
If handletop > 450 Then
Shapes.ShowShape(head)
Shapes.ShowShape(lefteye)
Shapes.ShowShape(righteye)
Shapes.ShowShape(lefteyeball)
Shapes.ShowShape(righteyeball)
Shapes.ShowShape(mouth)
Shapes.ShowShape(mouthcover)
Shapes.ShowShape(lip)
Shapes.ShowShape(leftarm)
Shapes.ShowShape(lefthand)
Shapes.ShowShape(rightarm)
Shapes.ShowShape(righthand)
Shapes.ShowShape(body)
Shapes.ShowShape(power)
Shapes.ShowShape(leftleg)
Shapes.ShowShape(rightleg)
Shapes.ShowShape(leftfoot)
Shapes.ShowShape(rightfoot)
Shapes.ShowShape(subtitle)
Shapes.HideShape(line25)
Timer.Interval = 500
Else
Shapes.ShowShape(line25)
Shapes.HideShape(subtitle)
Shapes.HideShape(head)
Shapes.HideShape(lefteye)
Shapes.HideShape(righteye)
Shapes.HideShape(lefteyeball)
Shapes.HideShape(righteyeball)
Shapes.HideShape(mouth)
Shapes.HideShape(mouthcover)
Shapes.HideShape(lip)
Shapes.HideShape(leftarm)
Shapes.HideShape(lefthand)
Shapes.HideShape(rightarm)
Shapes.HideShape(righthand)
Shapes.HideShape(body)
Shapes.HideShape(power)
Shapes.HideShape(leftleg)
Shapes.HideShape(rightleg)
Shapes.HideShape(leftfoot)
Shapes.HideShape(rightfoot)
Shapes.Move(lefteyeball, 378, 260)
Shapes.Move(righteyeball, 393, 260)
EndIf

If handletop > 465 Then
Controls.SetButtonCaption(handleactive, 0)
Shapes.Move(handle, handleleft, 453.5)
Shapes.HideShape(overline)
Shapes.SetOpacity(back, 50)
EndIf
If handletop < 131 Then
Controls.SetButtonCaption(handleactive, 0)
Shapes.Move(handle, handleleft, 143.5)
Shapes.HideShape(overline)
Shapes.SetOpacity(back, 50)
EndIf
EndIf

EndSub

'MOUSE_UP
GraphicsWindow.MouseUp = mu
Sub mu
Controls.SetButtonCaption(handleactive, 0)
Shapes.HideShape(overline)

'PLAY_CLICK
If x > handleleft And x < handleleft + 25 And y > handletop And y < handletop + 25 Then
Sound.PlayClick()
Shapes.SetOpacity(back, 50)
Else
Shapes.SetOpacity(back, 50)
EndIf
EndSub

'TIMER
Timer.Tick = tick
Sub tick
Shapes.Animate(lefteyeball, 380, 265, 300)
Shapes.Animate(righteyeball, 396, 265, 300)
EndSub