home *** CD-ROM | disk | FTP | other *** search
- VERSION 5.00
- Begin VB.Form Calculator
- BorderStyle = 1 'Fixed Single
- Caption = "AGC Calculator"
- ClientHeight = 2625
- ClientLeft = 2580
- ClientTop = 1485
- ClientWidth = 2880
- ClipControls = 0 'False
- BeginProperty Font
- Name = "System"
- Size = 9.75
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- Icon = "Calc.frx":0000
- LinkMode = 1 'Source
- LinkTopic = "Form1"
- MaxButton = 0 'False
- MDIChild = -1 'True
- MinButton = 0 'False
- PaletteMode = 1 'UseZOrder
- ScaleHeight = 2625
- ScaleWidth = 2880
- ShowInTaskbar = 0 'False
- WhatsThisHelp = -1 'True
- Begin VB.CommandButton Number
- Caption = "7"
- Height = 480
- Index = 7
- Left = 120
- TabIndex = 7
- ToolTipText = "7"
- Top = 600
- Width = 480
- End
- Begin VB.CommandButton Number
- Caption = "8"
- Height = 480
- Index = 8
- Left = 600
- TabIndex = 8
- ToolTipText = "8"
- Top = 600
- Width = 480
- End
- Begin VB.CommandButton Number
- Caption = "9"
- Height = 480
- Index = 9
- Left = 1080
- TabIndex = 9
- ToolTipText = "9"
- Top = 600
- Width = 480
- End
- Begin VB.CommandButton Cancel
- Caption = "C"
- Height = 480
- Left = 1800
- TabIndex = 10
- ToolTipText = "Clear"
- Top = 600
- Width = 480
- End
- Begin VB.CommandButton CancelEntry
- Caption = "CE"
- Height = 480
- Left = 2280
- TabIndex = 11
- ToolTipText = "Cancel Entry"
- Top = 600
- Width = 480
- End
- Begin VB.CommandButton Number
- Caption = "4"
- Height = 480
- Index = 4
- Left = 120
- TabIndex = 4
- ToolTipText = "4"
- Top = 1080
- Width = 480
- End
- Begin VB.CommandButton Number
- Caption = "5"
- Height = 480
- Index = 5
- Left = 600
- TabIndex = 5
- ToolTipText = "5"
- Top = 1080
- Width = 480
- End
- Begin VB.CommandButton Number
- Caption = "6"
- Height = 480
- Index = 6
- Left = 1080
- TabIndex = 6
- ToolTipText = "6"
- Top = 1080
- Width = 480
- End
- Begin VB.CommandButton Operator
- Caption = "+"
- Height = 480
- Index = 1
- Left = 1800
- TabIndex = 12
- ToolTipText = "Add"
- Top = 1080
- Width = 480
- End
- Begin VB.CommandButton Operator
- Caption = "-"
- Height = 480
- Index = 3
- Left = 2280
- TabIndex = 13
- ToolTipText = "Subtract"
- Top = 1080
- Width = 480
- End
- Begin VB.CommandButton Number
- Caption = "1"
- Height = 480
- Index = 1
- Left = 120
- TabIndex = 1
- ToolTipText = "1"
- Top = 1560
- Width = 480
- End
- Begin VB.CommandButton Number
- Caption = "2"
- Height = 480
- Index = 2
- Left = 600
- TabIndex = 2
- ToolTipText = "2"
- Top = 1560
- Width = 480
- End
- Begin VB.CommandButton Number
- Caption = "3"
- Height = 480
- Index = 3
- Left = 1080
- TabIndex = 3
- ToolTipText = "3"
- Top = 1560
- Width = 480
- End
- Begin VB.CommandButton Operator
- Caption = "X"
- Height = 480
- Index = 2
- Left = 1800
- TabIndex = 14
- ToolTipText = "Multiply"
- Top = 1560
- Width = 480
- End
- Begin VB.CommandButton Operator
- Caption = "/"
- Height = 480
- Index = 0
- Left = 2280
- TabIndex = 15
- ToolTipText = "Divide"
- Top = 1560
- Width = 480
- End
- Begin VB.CommandButton Number
- Caption = "0"
- Height = 480
- Index = 0
- Left = 120
- TabIndex = 0
- ToolTipText = "0"
- Top = 2040
- Width = 960
- End
- Begin VB.CommandButton Decimal
- Caption = "."
- Height = 480
- Left = 1080
- TabIndex = 18
- ToolTipText = "Decimal"
- Top = 2040
- Width = 480
- End
- Begin VB.CommandButton Operator
- Caption = "="
- Height = 480
- Index = 4
- Left = 1800
- TabIndex = 16
- ToolTipText = "Equals"
- Top = 2040
- Width = 480
- End
- Begin VB.CommandButton Percent
- Caption = "%"
- Height = 480
- Left = 2280
- TabIndex = 17
- ToolTipText = "Percent"
- Top = 2040
- Width = 480
- End
- Begin VB.Label Readout
- Alignment = 1 'Right Justify
- BackColor = &H00FFFFFF&
- BorderStyle = 1 'Fixed Single
- Caption = "0."
- BeginProperty Font
- Name = "Times New Roman"
- Size = 12
- Charset = 0
- Weight = 700
- Underline = 0 'False
- Italic = 0 'False
- Strikethrough = 0 'False
- EndProperty
- ForeColor = &H00000000&
- Height = 360
- Left = 120
- TabIndex = 19
- Top = 105
- Width = 2640
- End
- Attribute VB_Name = "Calculator"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Option Explicit
- Dim Op1, Op2 ' Previously input operand.
- Dim DecimalFlag As Integer ' Decimal point present yet?
- Dim NumOps As Integer ' Number of operands.
- Dim LastInput ' Indicate type of last keypress event.
- Dim OpFlag ' Indicate pending operation.
- Dim TempReadout
- ' Click event procedure for C (cancel) key.
- ' Reset the display and initializes variables.
- Private Sub Cancel_Click()
- Readout = Format(0, "0.")
- Op1 = 0
- Op2 = 0
- Form_Load
- End Sub
- ' Click event procedure for CE (cancel entry) key.
- Private Sub CancelEntry_Click()
- Readout = Format(0, "0.")
- DecimalFlag = False
- LastInput = "CE"
- End Sub
- ' Click event procedure for decimal point (.) key.
- ' If last keypress was an operator, initialize
- ' readout to "0." Otherwise, append a decimal
- ' point to the display.
- 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
- ' Initialization routine for the form.
- ' Set all variables to initial values.
- Private Sub Form_Load()
- DecimalFlag = False
- NumOps = 0
- LastInput = "NONE"
- OpFlag = " "
- Readout = Format(0, "0.")
- 'Decimal.Caption = Format(0, ".")
- End Sub
- ' Click event procedure for number keys (0-9).
- ' Append new number to the number in the display.
- 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
- ' Click event procedure for operator keys (+, -, x, /, =).
- ' If the immediately preceeding keypress was part of a
- ' number, increments NumOps. If one operand is present,
- ' set Op1. If two are present, set Op1 equal to the
- ' result of the operation on Op1 and the current
- ' input string, and display the result.
- 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
- ' Click event procedure for percent key (%).
- ' Compute and display a percentage of the first operand.
- Private Sub Percent_Click()
- Readout = Readout / 100
- LastInput = "Ops"
- OpFlag = "%"
- NumOps = NumOps + 1
- DecimalFlag = True
- End Sub
-