Microsoft Small Basic

Program Listing: WVP500
GraphicsWindow.Show()
GraphicsWindow.Title = " Вам мальчишкам и девчушкам... Akiva 25/IX-2013 Toronto"
GraphicsWindow.BrushColor = GraphicsWindow.GetColorFromRGB(192,255,255)
GraphicsWindow.Width = 1010
GraphicsWindow.Height = 815 'Собираем форму
GraphicsWindow.CanResize = "False"
Mouse.ShowCursor()
GraphicsWindow.MouseDown = RZ
GraphicsWindow.MouseDown = md2
GraphicsWindow.MouseMove = OnMouseMove
GraphicsWindow.BrushColor = "Black"
GraphicsWindow.FontSize = 12
b1 = Controls.AddButton("Shape1",860,10) ' - где ей быть
Controls.SetSize(b1,140,25) ' - размеры
b2 = Controls.AddButton("Shape2",860,37)
Controls.SetSize(b2,140,25)
b3 = Controls.AddButton("Shape3",860,64)
Controls.SetSize(b3,140,25)
b4 = Controls.AddButton("Shape4",860,91) 'Кнопочки
Controls.SetSize(b4,140,25)
b5 = Controls.AddButton("Polygon5",860,118)
Controls.SetSize(b5,140,25)
b6 = Controls.AddButton("Polygon6",860,145)
Controls.SetSize(b6,140,25)
b7 = Controls.AddButton("Polygon7",860,172)
Controls.SetSize(b7,140,25)
b8 = Controls.AddButton("Polygon8",860,199)
Controls.SetSize(b8,140,25)
b9 = Controls.AddButton("DrawLine",860,226)
Controls.SetSize(b9,140,25)
b10 = Controls.AddButton("DrawRectangle",860,253)
Controls.SetSize(b10,140,25)
b11 = Controls.AddButton("FillRectangle",860,280)
Controls.SetSize(b11,140,25)
b12 = Controls.AddButton("DrawEllipse",860,307)
Controls.SetSize(b12,140,25)
b13 = Controls.AddButton("FillEllipse",860,334)
Controls.SetSize(b13,140,25)
b14 = Controls.AddButton("DrawTriangle",860,361)
Controls.SetSize(b14,140,25)
b15 = Controls.AddButton("FillTriangle",860,388)
Controls.SetSize(b15,140,25)
b16 = Controls.AddButton("DrawText",860,415)
Controls.SetSize(b16,140,25)
b17 = Controls.AddButton("DrawImage",860,442)
Controls.SetSize(b17,140,25)
b18 = Controls.AddButton("Sound.Play",860,469)
Controls.SetSize(b18,140,25)
b19 = Controls.AddButton("",860,496)
Controls.SetSize(b19,140,25)
b20 = Controls.AddButton("#",860,523)
Controls.SetSize(b20,140,25)
b21 = Controls.AddButton("Animate",860,550)
Controls.SetSize(b21,140,25)
b22 = Controls.AddButton("Remove",860,577)
Controls.SetSize(b22,140,25)
b23 = Controls.AddButton("Rotate",860,604)
Controls.SetSize(b23,140,25)
b24 = Controls.AddButton("Draw-Рисовалка",860,631)
Controls.SetSize(b24,140,25)
b25 = Controls.AddButton("",860,658)
Controls.SetSize(b25,140,25)
b26 = Controls.AddButton("",860,685)
Controls.SetSize(b26,140,25)
b27 = Controls.AddButton("BackgroundColor",860,712)
Controls.SetSize(b27,140,25)
b28 = Controls.AddButton("RST",860,739)
Controls.SetSize(b28,140,25)
b29 = Controls.AddButton("Help",860,766)
Controls.SetSize(b29,140,25)
GraphicsWindow.BrushColor = "Blue"
txt = Controls.AddTextBox(660,793)
Controls.SetSize(txt,340,25)
Controls.ButtonClicked = Go
Sub Go
If Controls.LastClickedButton = b1 Then ' Если нажать на кнопочку b1
md2() 'подпрограмма cчетчик-координат
wh() ' "" размер фигере
Cip() ' "" заливка фигуры
Controls.SetButtonCaption(b1,"Включен")
s = FCDialogs.AskForTextLine("К-во углов = ?") ' на сколько углов фигуре быть
st1 = LDShapes.AddStar(s,w,h) 'размеры
Shapes.Move(st1,x1,y1) ' координаты где фигуре быть
an = st1 ' связь с анимацией
rt = st1 ' "" уничтожить фигуры
sh = st1 ' "" с поворотом
K = 0

ElseIf Controls.LastClickedButton = b2 Then
md2()
wh()
Cip()
Controls.SetButtonCaption(b2,"Включен")
s = FCDialogs.AskForTextLine("К-во углов = ?")
st2 = LDShapes.AddStar(s,w,h)
Shapes.Move(st2,x1,y1)
an = st2
rt = st2
sh = st2
K = 0

ElseIf Controls.LastClickedButton = b3 Then
md2()
wh()
Cip()
Controls.SetButtonCaption(b3,"Включен")
s = FCDialogs.AskForTextLine("К-во углов = ?")
st3 = LDShapes.AddStar(s,w,h)
Shapes.Move(st3,x1,y1)
an = st3
rt = st3
sh = st3
K = 0

ElseIf Controls.LastClickedButton = b4 Then
md2()
wh()
Cip()
Controls.SetButtonCaption(b4,"Включен")
s = FCDialogs.AskForTextLine("К-во углов = ?")
st4 = LDShapes.AddStar(s,w,h)
Shapes.Move(st4,x1,y1)
an = st4
rt = st4
sh = st4
K = 0

ElseIf Controls.LastClickedButton = b5 Then
md2()
wh()
Cip()
Controls.SetButtonCaption(b5,"Включен")
s = FCDialogs.AskForTextLine("К-во углов = ?")
st5 = LDShapes.AddRegularPolygon(s,w)
Shapes.Move(st5,x1,y1)
an = st5
rt = st5
sh = st5
K = 0

ElseIf Controls.LastClickedButton = b6 Then
md2()
wh()
Cip()
Controls.SetButtonCaption(b6,"Включен")
s = FCDialogs.AskForTextLine("К-во углов = ?")
st6 = LDShapes.AddRegularPolygon(s,w)
Shapes.Move(st6,x1,y1)
an = st6
rt = st6
sh = st6
K = 0

ElseIf Controls.LastClickedButton = b7 Then
md2()
wh()
Cip()
Controls.SetButtonCaption(b7,"Включен")
s = FCDialogs.AskForTextLine("К-во углов = ?")
st7 = LDShapes.AddRegularPolygon(s,w)
Shapes.Move(st7,x1,y1)
an = st7
rt = st7
sh = st7
K = 0

ElseIf Controls.LastClickedButton = b8 Then
md2()
wh()
Cip()
Controls.SetButtonCaption(b8,"Включен")
s = FCDialogs.AskForTextLine("К-во углов = ?")
st8 = LDShapes.AddRegularPolygon(s,w)
Shapes.Move(st8,x1,y1)
an = st8
rt = st8
sh = st8
K = 0

ElseIf Controls.LastClickedButton = b9 Then
md2()
pn() 'Подпрограммп для зарисовки контура фигур
GraphicsWindow.DrawLine(x1,y1,x2,y2)
K = 0
EndIf
If Controls.LastClickedButton = b10 Then
md2()
pn()
wh()
GraphicsWindow.DrawRectangle(x1,y1,w,h)
K = 0

ElseIf Controls.LastClickedButton = b11 Then
md2()
Cip()
wh()
GraphicsWindow.FillRectangle(x1,y1,w,h)
K = 0

ElseIf Controls.LastClickedButton = b12 Then
md2()
pn()
wh()
GraphicsWindow.DrawEllipse(x1,y1,w,h)
K = 0

ElseIf Controls.LastClickedButton = b13 Then
md2()
Cip()
wh()
GraphicsWindow.FillEllipse(x1,y1,w,h)
K = 0

ElseIf Controls.LastClickedButton = b14 Then
md2()
pn()
GraphicsWindow.DrawTriangle(x1,y1,x2,y2,x3,y3)
K = 0
ElseIf Controls.LastClickedButton = b15 Then
md2()
Cip()
GraphicsWindow.FillTriangle(x1,y1,x2,y2,x3,y3)
K = 0
ElseIf Controls.LastClickedButton = b16 Then
md2()
Cip()
nf = FCDialogs.AskForTextLine("FontName = ?")
f = FCDialogs.AskForTextLine("FontSize = ?")
GraphicsWindow.FontName = nf
GraphicsWindow.FontSize = f
t11 = Controls.GetTextBoxText(txt) 'Для создание надписей на форме
GraphicsWindow.DrawText(x1,y1,t11)
K = 0
ElseIf Controls.LastClickedButton = b17 Then
md2()
fle = FCDialogs.AskForFile() 'Загрузка с файла картинки
GraphicsWindow.DrawImage(fle,x1,y1)
K = 0
ElseIf Controls.LastClickedButton = b18 Then
Sound.PlayBellRing() 'Вызов звонка

ElseIf Controls.LastClickedButton = b20 Then
GraphicsWindow.PenWidth = 0.5
GraphicsWindow.PenColor = GraphicsWindow.GetColorFromRGB(100,225,255)
For v = 4 To 210 Step 6
For g = 4 To 210 Step 6
GraphicsWindow.DrawLine(4 * g,4,4 * g,810) 'Сетка
EndFor
GraphicsWindow.DrawLine(4,4 * v,845,4 * v)
EndFor
ElseIf Controls.LastClickedButton = b21 Then
md2()
t = FCDialogs.AskForTextLine("Время в(miliSeconds) = ?") 'Сколько милиСекунд фигуре быть в полете?
FCControls.MoveAsAnimation(an,x1,y1,t)
K = 0

ElseIf Controls.LastClickedButton = b22 Then
Shapes.Remove(st1)
Shapes.Remove(st2)
Shapes.Remove(st3)
Shapes.Remove(st4) 'Уничтожает действующих фигур
Shapes.Remove(st5)
Shapes.Remove(st6)
Shapes.Remove(st7)
Shapes.Remove(st8)
Controls.SetButtonCaption(b1,"Shape 1")
Controls.SetButtonCaption(b2,"Shape 2")
Controls.SetButtonCaption(b3,"Shape 3")
Controls.SetButtonCaption(b4,"Shape 4")
Controls.SetButtonCaption(b5,"Shape 5") 'Отмечает какая фигура свободна
Controls.SetButtonCaption(b6,"Shape 6")
Controls.SetButtonCaption(b7,"Shape 7")
Controls.SetButtonCaption(b8,"Shepe 8")
K = 0

ElseIf Controls.LastClickedButton = b23 Then
ang = FCDialogs.AskForTextLine("Под каким Углом = ?")
Shapes.Rotate(rt,ang)
K = 0
ElseIf Controls.LastClickedButton = b24 Then
pn()
GraphicsWindow.MouseMove = Risovalka

ElseIf Controls.LastClickedButton = b25 Then

ElseIf Controls.LastClickedButton = b27 Then
R = FCDialogs.AskForTextLine("Red(R) = ? (От 0 до 255)")
g = FCDialogs.AskForTextLine("Green(G) = ? (От 0 до 255)") 'Для изменение фона формы
B = FCDialogs.AskForTextLine("Blue(B) = ? (От 0 до 255)")
GraphicsWindow.BackgroundColor = GraphicsWindow.GetColorFromRGB(R,G,B)

ElseIf Controls.LastClickedButton = b28 Then
GraphicsWindow.BrushColor = GraphicsWindow.GetColorFromRGB(R,G,B) 'RST
GraphicsWindow.FillRectangle(0,0,1020,825)
K = 0
ElseIf Controls.LastClickedButton = b29 Then
GraphicsWindow.FontSize = 12
GraphicsWindow.BrushColor = "Black"
GraphicsWindow.DrawBoundText(25,10,800," Объясняю как пользоваться этой рисовалкой:")
GraphicsWindow.DrawBoundText(10,30,850,"1)Сделай метку где быть фигуре(Shape).DrawLine(X1,Y1)-(X2,Y2),дважды ); Triangle - трижды (X1,Y1)-(X2,Y2)-(X3,Y3).")
GraphicsWindow.DrawBoundText(10,50,850," Остальным фигурам(Shapes),один раз (X1,Y1).")
GraphicsWindow.DrawBoundText(10,70,850,"2)Вписывай разумныые размеры фигуре(ширину),(высоту) и только числами.")
GraphicsWindow.DrawBoundText(10,90,850,"3)-,создаешь звезду(star) - разной конфигурации и количества углов.")
GraphicsWindow.DrawBoundText(10,110,850,"4)-,создаешь 3х-угольник,pomб,5,6,7 и тд. угольных фигур(Shapes).")
GraphicsWindow.DrawBoundText(10,130,850,"5)Каждую последующую фигуру можно перемещать,укажи (MouseDown) куда и за какое время в (miliSeconds).")
GraphicsWindow.DrawBoundText(10,150,850,"6)Их можно разворачивать под нужным углом.(до 360 градусов).")
GraphicsWindow.DrawBoundText(10,170,850,"7)Используй из каждой ячейки(Shape1-Polygon8) по одной фигуре! очищает форму от (Shapes).")
GraphicsWindow.DrawBoundText(10,190,850,"8)Остальные фигуры для тебя не будет представлять большого труда.Очищает их с формы .")
GraphicsWindow.DrawBoundText(10,210,850,"9)Если есть необходимость надписать что-то: внизу-справо(TextBox) и укажи где ей быть.")
GraphicsWindow.DrawBoundText(10,230,850,"10) - дает мозможность выбрать картинку и установить ее на форме,только укажи куда.")
GraphicsWindow.DrawBoundText(10,250,850,"11)Если хочешь сохранить свой 'шедевр', сделай вырезку ножницами (у меня Window-8), и в выбранную папочку.")
GraphicsWindow.DrawBoundText(10,270,850,"12)Нажми на кнопочку и сделай себе перерыв?")
GraphicsWindow.DrawBoundText(10,290,850,"13)Если удобней тебе рисовать сеточкой, нажми на <#>")
GraphicsWindow.DrawBoundText(10,310,850,"14),говорит само за себя.Если желаешь стереть,то подбирай цвету фона формы и большим (PenWidth).")
GraphicsWindow.DrawBoundText(10,330,850,"15),Подбери по вкусу фон формы. R=(255,0,0) : G=(0,255,0) : B=(0,0,255) и тд., и ")
GraphicsWindow.DrawBoundText(150,370,500,"УДАЧИ ТЕБЕ И БЛАГОПОЛУЧИЯ. Akiva 27/IX-2013 Toronto")

EndIf
EndSub
Sub Cip
C = FCDialogs.AskForColor()
GraphicsWindow.BrushColor = C ' подпрограмма для приготовление цвета заливки
EndSub
Sub wh
w = FCDialogs.AskForTextLine("Ширина = ?")
h = FCDialogs.AskForTextLine("Высота = ?") 'для размера фигурам
EndSub
Sub md2
K = K + 1
If K = 1 Then
rz()
X1 = x
Y1 = y
ElseIf K = 2 Then 'Счетчик координат
rz()
X2 = x
Y2 = y
ElseIf K = 3 Then
rz()
X3 = x
Y3 = y
EndIf
EndSub
Sub rz
X = GraphicsWindow.MouseX
Y = GraphicsWindow.MouseY
GraphicsWindow.BrushColor = "Black" 'метки где устанавливать фигуры
GraphicsWindow.FillEllipse(X,Y,3,3)
EndSub
Sub OnMouseMove 'индикатор местонахождении мыши(MouseDown)
GraphicsWindow.Title = "X = " + GraphicsWindow.MouseX + " : Y = " + GraphicsWindow.MouseY
EndSub
Sub pn
C1 = FCDialogs.AskForColor()
P = FCDialogs.AskForTextLine("PenWidth = ?") 'Для создания контура фигурам
GraphicsWindow.PenWidth = P
GraphicsWindow.PenColor = C1
EndSub
Sub Risovalka
If Mouse.IsLeftButtonDown ="True" Or Mouse.IsRightButtonDown = "True" Then
GraphicsWindow.DrawLine(mx1,my1,GraphicsWindow.MouseX,GraphicsWindow.MouseY)
EndIf
mx1 = GraphicsWindow.MouseX
my1 = GraphicsWindow.MouseY
EndSub