Microsoft Small Basic

Program Listing: XGW748
GraphicsWindow.MouseDown = onmousedown
GraphicsWindow.MouseMove = onmousemove
GraphicsWindow.MouseUp = onmouseup

X = 0
Y = 0
nX = 0
nY = 0
MD = 0

GraphicsWindow.Height = 100
GraphicsWindow.Width = 100

For Ax = 0 to 100 Step 20
For Ay = 0 To 100 Step 20
GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
T[Ax+","+Ay] = Shapes.AddRectangle(10, 10)
Shapes.Move(T[Ax+","+Ay], Ax, Ay)
EndFor
endfor

Sub OnMouseDown
MD = 1
X = Mouse.MouseX
Y = mouse.mousey
EndSub

Sub OnMouseMove
If MD = 1 Then
MD = 0
nX = mouse.mousex
nY = mouse.mousey
For Ax = 0 to 100 Step 20
For Ay = 0 To 100 Step 20
Tx = T[Ax+","+Ay]
Shapes.Move(Tx, nX - X + shapes.getleft(Tx), nY - Y + shapes.gettop(Tx))
EndFor
endfor
X = nX
Y = nY
MD = 1
EndIf
EndSub

Sub OnMouseUp
If MD = 1 Then
MD = 0
nX = mouse.mousex
nY = mouse.mousey
For Ax = 0 to 100 Step 20
For Ay = 0 To 100 Step 20
Tx = T[Ax+","+Ay]
Shapes.Move(Tx, nX - X + shapes.getleft(Tx), nY - Y + shapes.gettop(Tx))
EndFor
endfor
X = nX
Y = nY
Else
MD=0
EndIf
EndSub