Microsoft Small Basic

Program Listing: KWR934
p = 0

GraphicsWindow.CanResize = 0
GraphicsWindow.Width = 260
GraphicsWindow.Height = 230
GraphicsWindow.Title = "Calculator v. 1.0 by Alex_2000"

GraphicsWindow.BackgroundColor = GraphicsWindow.GetColorFromRGB(240, 240, 240)
GraphicsWindow.FontBold = "False"
GraphicsWindow.BrushColor = "Black"

m = Shapes.AddText("M")
Shapes.Move(m, 22, 62)
Shapes.HideShape(m)

t = Controls.AddTextBox(10, 10)
Controls.SetSize(t, 240, 22)
Controls.SetTextBoxText(t, "")

GraphicsWindow.BrushColor = "Red"
keyMC = Controls.AddButton("MC", 10, 95)
Controls.SetSize(keyMC, 35, 25)
keyMR = Controls.AddButton("MR", 10, 128)
Controls.SetSize(keyMR, 35, 25)
keyMS = Controls.AddButton("MS", 10, 161)
Controls.SetSize(keyMS, 35, 25)
keyMP = Controls.AddButton("M+", 10, 194)
Controls.SetSize(keyMP, 35, 25)
keyC = Controls.AddButton("C", 202, 58)
Controls.SetSize(keyC, 55, 25, )
keyCE = Controls.AddButton("CE", 139, 58)
Controls.SetSize(keyCE, 55, 25)
keyBackspase = Controls.AddButton("Backspase", 58, 58)
Controls.SetSize(keyBackspase, 70, 25)
keydelenie = Controls.AddButton("/", 181, 95)
Controls.SetSize(keydelenie, 35, 25)
keyumnogenie = Controls.AddButton("*", 181, 128)
Controls.SetSize(keyumnogenie, 35, 25)
keyminus = Controls.AddButton("-", 181, 161)
Controls.SetSize(keyminus, 35, 25)
keyplus = Controls.AddButton("+", 181, 194)
Controls.SetSize(keyplus, 35, 25)
keyravno = Controls.AddButton("=", 222, 194)
Controls.SetSize(keyravno, 35, 25)

GraphicsWindow.BrushColor = "Blue"
key7 = Controls.AddButton("7", 58, 95)
Controls.SetSize(key7, 35, 25)
key8 = Controls.AddButton("8", 99, 95)
Controls.SetSize(key8, 35, 25)
key9 = Controls.AddButton("9", 140, 95)
Controls.SetSize(key9, 35, 25)
key4 = Controls.AddButton("4", 58, 128)
Controls.SetSize(key4, 35, 25)
key5 = Controls.AddButton("5", 99, 128)
Controls.SetSize(key5, 35, 25)
key6 = Controls.AddButton("6", 140, 128)
Controls.SetSize(key6, 35, 25)
key1 = Controls.AddButton("1", 58, 161)
Controls.SetSize(key1, 35, 25)
key2 = Controls.AddButton("2", 99, 161)
Controls.SetSize(key2, 35, 25)
key3 = Controls.AddButton("3", 140, 161)
Controls.SetSize(key3, 35, 25)
key0 = Controls.AddButton("0", 58, 194)
Controls.SetSize(key0, 35, 25)
keyplusminus = Controls.AddButton("+/-", 99, 194)
Controls.SetSize(keyplusminus, 35, 25)
keytochka = Controls.AddButton(".", 140, 194)
Controls.SetSize(keytochka, 35, 25)
keysqrt = Controls.AddButton("sgrt", 222, 95)
Controls.SetSize(keysqrt, 35, 25)
keyprocent = Controls.AddButton("%", 222, 128)
Controls.SetSize(keyprocent, 35, 25)
keynax = Controls.AddButton("1/x", 222, 161)
Controls.SetSize(keynax, 35, 25)

Controls.ButtonClicked = click

Sub click
Sound.PlayClick()
If Controls.LastClickedButton = key0 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "0"))
ElseIf Controls.LastClickedButton = key1 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "1"))
ElseIf Controls.LastClickedButton = key2 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "2"))
ElseIf Controls.LastClickedButton = key3 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "3"))
ElseIf Controls.LastClickedButton = key4 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "4"))
ElseIf Controls.LastClickedButton = key5 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "5"))
ElseIf Controls.LastClickedButton = key6 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "6"))
ElseIf Controls.LastClickedButton = key7 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "7"))
ElseIf Controls.LastClickedButton = key8 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "8"))
ElseIf Controls.LastClickedButton = key9 Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "9"))
ElseIf Controls.LastClickedButton = keytochka Then
Controls.SetTextBoxText(t, Text.Append(Controls.GetTextBoxText(t), "."))
ElseIf Controls.LastClickedButton = keyplusminus Then
If p = 0 Then
Controls.SetTextBoxText(t, Text.Append("-", Controls.GetTextBoxText(t)))
p = 1
Else
Controls.SetTextBoxText(t, Math.Abs(Controls.GetTextBoxText(t)))
p = 0
EndIf
ElseIf Controls.LastClickedButton = keyplus Then
a = Controls.GetTextBoxText(t)
Controls.SetTextBoxText(t, "")
знак = "+"
ElseIf Controls.LastClickedButton = keyminus Then
a = Controls.GetTextBoxText(t)
Controls.SetTextBoxText(t, "")
знак = "-"
ElseIf Controls.LastClickedButton = keyumnogenie Then
a = Controls.GetTextBoxText(t)
Controls.SetTextBoxText(t, "")
знак = "*"
ElseIf Controls.LastClickedButton = keydelenie Then
a = Controls.GetTextBoxText(t)
Controls.SetTextBoxText(t, "")
знак = "/"
ElseIf Controls.LastClickedButton = keysqrt Then
Controls.SetTextBoxText(t, Math.SquareRoot(Controls.GetTextBoxText(t)))
ElseIf Controls.LastClickedButton = keynax Then
Controls.SetTextBoxText(t, 1/Controls.GetTextBoxText(t))
ElseIf Controls.LastClickedButton = keyC Then
a = ""
b = ""
Controls.SetTextBoxText(t, "")
ElseIf Controls.LastClickedButton = keyCE Then
Controls.SetTextBoxText(t, "")
ElseIf Controls.LastClickedButton = keyBackspase Then
Controls.SetTextBoxText(t, Text.GetSubText(Controls.GetTextBoxText(t), 1, Text.GetLength(Controls.GetTextBoxText(t))-1))
ElseIf Controls.LastClickedButton = keyMP Or Controls.LastClickedButton = keyMS Then
c = Controls.GetTextBoxText(t)
Shapes.ShowShape(m)
ElseIf Controls.LastClickedButton = keyMC Then
c = ""
Shapes.HideShape(m)
ElseIf Controls.LastClickedButton = keyMR Then
Controls.SetTextBoxText(t, c)
ElseIf Controls.LastClickedButton = keyprocent Then
Controls.SetTextBoxText(t, (a * Controls.GetTextBoxText(t))/100)
ElseIf Controls.LastClickedButton = keyravno Then
b = Controls.GetTextBoxText(t)
If знак = "+" Then
Controls.SetTextBoxText(t, a + b)
ElseIf знак = "-" Then
Controls.SetTextBoxText(t, a - b)
ElseIf знак = "*" Then
Controls.SetTextBoxText(t, a * b)
ElseIf знак = "/" Then
If b = 0 Then
Controls.SetTextBoxText(t, "Divide by zero is impossible!")
Else
Controls.SetTextBoxText(t, a / b)
EndIf
EndIf
EndIf
EndSub