Dim Op1,

Dim DecimalFlag As Integer 

Dim NumOps As

Dim LastInput              

Dim OpFlag                 

Dim TempReadout

 

Private Sub Cancel_Click()

    Readout = Format(0, "0.")

    Op1 = 0

    Op2 = 0

    Form_Load

End Sub

 

Private Sub CancelEntry_Click()

    Readout = Format(0, "0.")

    DecimalFlag = False

    LastInput = "CE"

End Sub

 

Private Sub Decimal_Click()

    If LastInput = "NEG" Then

        Readout = Format(0, "-0.")

    ElseIf LastInput <> "NUMS" Then

        Readout = Format(0, "0.")

    End If

    DecimalFlag = True

    LastInput = "NUMS"

End Sub

 

Private Sub Form_Load()

    DecimalFlag = False

    NumOps = 0

    LastInput = "NONE"

    OpFlag = " "

    Readout = Format(0, "0.")

    'Decimal.Caption = Format(0, ".")

End Sub

 

.

Private Sub Number_Click(Index As Integer)

    If LastInput <> "NUMS" Then

        Readout = Format(0, ".")

        DecimalFlag = False

    End If

    If DecimalFlag Then

        Readout = Readout + Number(Index).Caption

    Else

        Readout = Left(Readout, InStr(Readout, Format(0, ".")) - 1) + Number(Index).Caption + Format(0, ".")

    End If

    If LastInput = "NEG" Then Readout = "-" & Readout

    LastInput = "NUMS"

End Sub

 

Private Sub Operator_Click(Index As Integer)

    TempReadout = Readout

    If LastInput = "NUMS" Then

        NumOps = NumOps + 1

    End If

    Select Case NumOps

        Case 0

        If Operator(Index).Caption = "-" And LastInput <> "NEG" Then

            Readout = "-" & Readout

            LastInput = "NEG"

        End If

        Case 1

        Op1 = Readout

        If Operator(Index).Caption = "-" And LastInput <> "NUMS" And OpFlag <> "=" Then

            Readout = "-"

            LastInput = "NEG"

        End If

        Case 2

        Op2 = TempReadout

        Select Case OpFlag

            Case "+"

                Op1 = CDbl(Op1) + CDbl(Op2)

            Case "-"

                Op1 = CDbl(Op1) - CDbl(Op2)

            Case "X"

                Op1 = CDbl(Op1) * CDbl(Op2)

            Case "/"

                If Op2 = 0 Then

                   MsgBox "Can't divide by zero", 48, "Calculator"

                Else

                   Op1 = CDbl(Op1) / CDbl(Op2)

                End If

            Case "="

                Op1 = CDbl(Op2)

            Case "%"

                Op1 = CDbl(Op1) * CDbl(Op2)

            End Select

        Readout = Op1

        NumOps = 1

    End Select

    If LastInput <> "NEG" Then

        LastInput = "OPS"

        OpFlag = Operator(Index).Caption

    End If

End Sub

 

Private Sub Percent_Click()

    Readout = Readout / 100

    LastInput = "Ops"

    OpFlag = "%"

    NumOps = NumOps + 1

    DecimalFlag = True

End Sub