by majid (1 Submission)
Category: Miscellaneous
Compatability: VB 6.0
Difficulty: Unknown Difficulty
Originally Published: Tue 5th May 2009
Date Added: Mon 8th February 2021
Rating: (1 Votes)
calculator
API Declarations
Dim blnpoint As Boolean
Dim op As String * 1, strlastinput As String
Dim n1 As Double, dblm As Double
Dim dblpi As Double
Select Case op
Case "*"
calc = a * b
Case "-"
calc = a - b
Case "+"
calc = a + b
Case "^"
If a < 0 And b - Fix(b) <> 0 Then
MsgBox "Invaild input function ", vbCritical, "Eror"
Else
calc = a ^ b
End If
Case "/"
If b = 0 Then
MsgBox "cannot Division by zero", vbCritical, "Error"
Else
calc = a / b
End If
Case ""
calc = b
End Select
End Function
Private Sub cmd0_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "0", "0")
Else
lbloutput = lbloutput + "0"
End If
strlastinput = "nums"
End Sub
Private Sub cmd1_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "1", "1")
Else
lbloutput = lbloutput + "1"
End If
strlastinput = "nums"
End Sub
Private Sub cmd2_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "2", "2")
Else
lbloutput = lbloutput + "2"
End If
strlastinput = "nums"
End Sub
Private Sub cmd3_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "3", "3")
Else
lbloutput = lbloutput + "3"
End If
strlastinput = "nums"
End Sub
Private Sub cmd4_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "4", "4")
Else
lbloutput = lbloutput + "4"
End If
strlastinput = "nums"
End Sub
Private Sub cmd5_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "5", "5")
Else
lbloutput = lbloutput + "5"
End If
strlastinput = "nums"
End Sub
Private Sub cmd6_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "6", "6")
Else
lbloutput = lbloutput + "6"
End If
strlastinput = "nums"
End Sub
Private Sub cmd7_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "7", "7")
Else
lbloutput = lbloutput + "7"
End If
strlastinput = "nums"
End Sub
Private Sub cmd8_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "8", "8")
Else
lbloutput = lbloutput + "8"
End If
strlastinput = "nums"
End Sub
Private Sub cmd9_Click()
If Len(lbloutput) = "20" Then Exit Sub
If strlastinput <> "nums" Then
lbloutput = IIf(blnpoint, lbloutput + "9", "9")
Else
lbloutput = lbloutput + "9"
End If
strlastinput = "nums"
End Sub
Private Sub CMDBKS_Click()
Dim l As Byte
l = Len(lbloutput)
If l > 0 Then
lbloutput = Left(lbloutput, l - 1)
End If
If Val(lbloutput) = 0 Then
lbloutput = "0."
blnpoint = False
End If
strlastinput = ""
End Sub
Private Sub cmdc_Click()
n1 = 1
op = ""
lbloutput = "0."
strlastinput = ""
blnpoint = False
End Sub
Private Sub cmdce_Click()
lbloutput = "0."
strlastinput = "op"
blnpoint = False
End Sub
Private Sub cmdcos_Click()
Dim dblr As Double
dblr = Val(lbloutput) / 180 * dblpi
lbloutput = Cos(dblr)
If Val(lbloutput) < 1E-16 Then lbloutput = "0."
strlastinput = "nums"
End Sub
Private Sub cmdcot_Click()
Dim dblr As Double
dblr = Val(lbloutput) / 180 * dblpi
If dblr = 0 Then
MsgBox "Cannot Division by zero", vbCritical, "error"
Exit Sub
End If
lbloutput = 1 / Tan(dblr)
If Val(lbloutput) < 1E-16 Then lbloutput = "0."
If Val(lbloutput) > 1E+16 Then MsgBox "Invalid input function", vbCritical, "error"
strlastinput = "nums"
End Sub
Private Sub cmddiv_Click()
If strlastinput = "nums" Then
n1 = calc(n1, Val(lbloutput), op)
lbloutput = n1
End If
n1 = Val(lbloutput)
op = "/"
strlastinput = "op"
blnpoint = False
End Sub
Private Sub cmdequal_Click()
n1 = calc(n1, Val(lbloutput), op)
If n1 = 0 Then
lbloutput = "0."
Else
lbloutput = n1
End If
op = ""
strlastinput = "op"
blnpoint = False
End Sub
Private Sub cmdlog_Click()
Dim dbln As Double
dbln = Val(lbloutput)
If dbln <= 0 Then
MsgBox "invalid input function", vbCritical, "error"
Exit Sub
End If
lbloutput = Log(dbln) / Log(10)
If Val(lbloutput) < 1E-16 Then lbloutput = "0."
If Val(lbloutput) > 1E+16 Then MsgBox "invalid input function", vbCritical, "error"
strlastinput = "op"
End Sub
Private Sub cmdmc_Click()
dblm = 0
LBLM = ""
strlastinput = ""
End Sub
Private Sub cmdminus_Click()
If strlastinput = "nums" Then
n1 = calc(n1, Val(lbloutput), op)
lbloutput = n1
End If
n1 = Val(lbloutput)
op = "-"
strlastinput = "op"
blnpoint = False
End Sub
Private Sub cmdmp_Click()
dblm = dblm + Val(lbloutput)
LBLM = "M"
strlastinput = "op"
End Sub
Private Sub cmdmr_Click()
lbloutput = IIf(dblm = 0, "0.", dblm)
strlastinput = "nums"
If InStr(lbloutput, ".") <> 0 Then blnpoint = True
End Sub
Private Sub cmdms_Click()
dblm = Val(lbloutput)
LBLM = "M"
strlastinput = "op"
blnpoint = False
End Sub
Private Sub cmdmul_Click()
If strlastinput = "nums" Then
n1 = calc(n1, Val(lbloutput), op)
lbloutput = n1
End If
n1 = Val(lbloutput)
op = "*"
strlastinput = "op"
blnpoint = False
End Sub
Private Sub cmdpi_Click()
lbloutput = dblpi
strlastinput = "nums"
End Sub
Private Sub cmdplus_Click()
If strlastinput = "nums" Then
n1 = calc(n1, Val(lbloutput), op)
lbloutput = n1
End If
n1 = Val(lbloutput)
op = "+"
strlastinput = "op"
blnpoint = False
End Sub
Private Sub cmdpoint_Click()
blnpoint = True
If strlastinput = "op" Then
lbloutput = "0."
Exit Sub
End If
If InStr(lbloutput, ".") = 0 Then
lbloutput = lbloutput + "."
End If
strlastinput = "nums"
End Sub
Private Sub cmdpower2_Click()
Dim dbln As Double
dbln = Val(lbloutput)
lbloutput = dbln ^ 2
If Val(lbloutput) < 1E-16 Then lbloutput = "0."
If Val(lbloutput) > 1E+16 Then MsgBox "invalid input function", vbCritical, "error"
strlastinput = "op"
End Sub
Private Sub cmdpowerxy_Click()
If strlastinput = "nums" Then
n1 = calc(n1, Val(lbloutput), op)
lbloutput = n1
End If
n1 = Val(lbloutput)
op = "^"
strlastinput = "op"
blnpoint = False
End Sub
Private Sub cmdreverse_Click()
Dim dbln As Double
dbln = Val(lbloutput)
If dbln = 0 Then
MsgBox "Cannot Division by zero", vbCritical, "error"
Exit Sub
End If
lbloutput = 1 / dbln
If Val(lbloutput) < 0.00000000000001 Then lbloutput = "0."
strlastinput = "op"
End Sub
Private Sub cmdsign_Click()
If lbloutput = "0." And blnpoint = False Then
Exit Sub
End If
If lbloutput = "0." Then
lbloutput = "-0."
Else
lbloutput = -Val(lbloutput)
End If
End Sub
Private Sub cmdsin_Click()
Dim dblr As Double
dblr = Val(lbloutput) / 180 * dblpi
lbloutput = Sin(dblr)
If Val(lbloutput) < 1E-16 Then lbloutput = "0."
strlastinput = "nums"
End Sub
Private Sub cmdsqrt_Click()
Dim dbln As Double
dbln = Val(lbloutput)
If dbln < 0 Then
MsgBox "invalid input function", vbCritical, "error"
Exit Sub
End If
lbloutput = Sqr(dbln)
If Val(lbloutput) < 1E-16 Then lbloutput = "0."
If Val(lbloutput) > 1E+16 Then MsgBox "invalid input function", vbCritical, "error"
strlastinput = "op"
End Sub
Private Sub cmdtan_Click()
Dim dblr As Double
dblr = Val(lbloutput) / 180 * dblpi
lbloutput = Tan(dblr)
If Val(lbloutput) < 1E-16 Then lbloutput = "0."
If Val(lbloutput) > 1E+16 Then MsgBox "invalid input function", vbCritical, "error"
strlastinput = "nums"
End Sub
Private Sub Form_Load()
n1 = 1
op = ""
strlastinput = ""
dblpi = 4 * Atn(1)
End Sub