Professional Documents
Culture Documents
Calcualtor
Calcualtor
Private mdblResult
As Double
Private mdblSavedNumber As Double
Private mstrDot
As String
Private mstrOp
As String
Private mstrDisplay
As String
Private mblnDecEntered
As Boolean
Private mblnOpPending
As Boolean
Private mblnNewEquals
As Boolean
Private mblnEqualsPressed As Boolean
Private mintCurrKeyIndex As Integer
Private Sub Form_Load()
Top = (Screen.Height - Height) / 2
Left = (Screen.Width - Width) / 2
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim intIndex As Integer
Select Case KeyCode
Case vbKeyBack:
intIndex = 0
Case vbKeyDelete:
intIndex = 1
Case vbKeyEscape:
intIndex = 2
Case vbKey0, vbKeyNumpad0: intIndex = 18
End If
Select Case mstrOp
Case "+"
mdblResult = mdblResult + mdblSavedNumber
Case "-"
mdblResult = mdblResult - mdblSavedNumber
Case "X"
mdblResult = mdblResult * mdblSavedNumber
Case "/"
If mdblSavedNumber = 0 Then
mstrDisplay = "ERROR"
Else
mdblResult = mdblResult / mdblSavedNumber
End If
Case Else
mdblResult = Val(mstrDisplay)
End Select
If mstrDisplay <> "ERROR" Then
mstrDisplay = Format$(mdblResult)
End If
mblnEqualsPressed = True
Case "+/-"
If mstrDisplay <> "" Then
If Left$(mstrDisplay, 1) = "-" Then
mstrDisplay = Right$(mstrDisplay, 2)
Else
mstrDisplay = "-" & mstrDisplay
End If
End If
Case "Backspace"
If Val(mstrDisplay) <> 0 Then
mstrDisplay = Left$(mstrDisplay, Len(mstrDisplay) - 1)
mdblResult = Val(mstrDisplay)
End If
Case "CE"
mstrDisplay = ""
Case "C"
mstrDisplay = ""
mdblResult = 0
mdblSavedNumber = 0
Case "1/x"
If Val(mstrDisplay) = 0 Then
mstrDisplay = "ERROR"
Else
mdblResult = Val(mstrDisplay)
mdblResult = 1 / mdblResult
mstrDisplay = Format$(mdblResult)
End If
Case "sqrt"
If Val(mstrDisplay) < 0 Then
mstrDisplay = "ERROR"
Else
mdblResult = Val(mstrDisplay)
mdblResult = Sqr(mdblResult)
mstrDisplay = Format$(mdblResult)
End If
End Select
If mstrDisplay = "" Then
lblDisplay = "0."
Else
mstrDot = IIf(InStr(mstrDisplay, ".") > 0, "", ".")
lblDisplay = mstrDisplay & mstrDot
If Left$(lblDisplay, 1) = "0" Then
lblDisplay = Mid$(lblDisplay, 2)
End If
End If
If lblDisplay = "." Then lblDisplay = "0."
End Sub