⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmcaculator.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
    End Select
End Sub

Private Sub cmdOperator_Click(Index As Integer)
    Dim comdate As String
    Select Case Index
        Case 0 '加法
            txtExplain.Locked = False
            txtExplain.Text = " + 用于把两数相加,例如:A+B 。 请输入加数。"
            txtExplain.Locked = True
            If Not Check(txtResult.Text) Then Exit Sub
            comdate = Left(lstView.list(lstView.ListCount - 1), 2)
            If (lstView.ListCount = 0) Or (comdate = "结果") Or mFinish = True Then
               If comdate = "结果" Or mFinish = True Then
                    lstView.AddItem Space(10)
                    lstView.AddItem Space(10)
                    If mFinish Then mFinish = False
                End If
               lstView.AddItem Space(22 - Len(txtResult.Text)) & txtResult.Text
               ReDim Preserve numGroup(lstView.ListCount - 1)
               numGroup(lstView.ListCount - 1) = txtResult.Text
               lstView.AddItem "+"
               ReDim Preserve numGroup(lstView.ListCount - 1)
               numGroup(lstView.ListCount - 1) = "+" 'keep value
               Result = Val(txtResult.Text)
               txtResult.Text = ""
               lstView.Selected(lstView.ListCount - 1) = True
               Exit Sub
            End If
            'kk$ = Trim(lstView.List(lstView.ListCount - 1))
            kk$ = numGroup(lstView.ListCount - 1)
            If kk$ = "÷" And txtResult.Text = 0 Then
                txtExplain.Locked = False
               txtExplain.Text = "除法错误,除数不能为零"
               txtExplain.Locked = True
               txtResult.Text = ""
               Exit Sub
             End If
            'lstView.RemoveItem lstView.ListCount - 1
            If kk$ = "×" Or kk = "÷" Then
                lstView.list(lstView.ListCount - 1) = kk$ & Space(20 - Len(txtResult.Text)) & txtResult.Text
             Else
                lstView.list(lstView.ListCount - 1) = kk$ & Space(22 - Len(txtResult.Text) - Len(kk$)) & txtResult.Text
             End If
             
             Result = Predure(kk$, CStr(Result), txtResult.Text)
             lstView.AddItem "----------------------------"
             ReDim Preserve numGroup(lstView.ListCount - 1)
             numGroup(lstView.ListCount - 1) = txtResult.Text
             lstView.AddItem Space(20 - Len(Display2(Result))) & Display2(Result)
             ReDim Preserve numGroup(lstView.ListCount - 1)
             numGroup(lstView.ListCount - 1) = Result
             lstView.AddItem Space(25)
             lstView.AddItem Space(25)
             lstView.AddItem Space(22 - Len(Display2(Result))) & Display2(Result)
'             ReDim Preserve numGroup(lstView.ListCount - 1)
'             numGroup(lstView.ListCount - 1) = Result
             lstView.AddItem "+"
             ReDim Preserve numGroup(lstView.ListCount - 1)
             numGroup(lstView.ListCount - 1) = "+"
             txtResult.Text = ""
             lstView.Selected(lstView.ListCount - 1) = True
             
        Case 1 '乘法
            txtExplain.Locked = False '说明此操作
            txtExplain.Text = " × 用于把两数相乘,例如:A×B。 请输入乘数。"
            txtExplain.Locked = True
            If Not Check(txtResult.Text) Then Exit Sub '检查数据有效性
            comdate = Left(lstView.list(lstView.ListCount - 1), 2)
            If lstView.ListCount = 0 Or comdate = "结果" Or mFinish = True Then '检查过程区别
               If comdate = "结果" Or mFinish = True Then
                    lstView.AddItem Space(10) '计算开始
                    If mFinish Then mFinish = False
               End If
               lstView.AddItem Space(22 - Len(txtResult.Text)) & txtResult.Text
               ReDim Preserve numGroup(lstView.ListCount - 1)
               numGroup(lstView.ListCount - 1) = txtResult.Text
               lstView.AddItem "×"
               ReDim Preserve numGroup(lstView.ListCount - 1)
               numGroup(lstView.ListCount - 1) = "×"
               Result = Val(txtResult.Text)
               txtResult.Text = ""
               lstView.Selected(lstView.ListCount - 1) = True
               Exit Sub
            End If
            
            ll$ = Trim(lstView.list(lstView.ListCount - 1)) ' 计算过程中
            If ll$ = "÷" And txtResult.Text = 0 Then
                txtExplain.Locked = False
               txtExplain.Text = "除法错误,除数不能为零"
               txtExplain.Locked = True
               txtResult.Text = ""
               Exit Sub
             End If
            'lstView.RemoveItem lstView.ListCount - 1
            If ll$ = "×" Or ll$ = "÷" Then
               lstView.list(lstView.ListCount - 1) = ll$ & Space(20 - Len(txtResult.Text)) & txtResult.Text
            Else
               lstView.list(lstView.ListCount - 1) = ll$ & Space(22 - Len(txtResult.Text) - Len(ll$)) & txtResult.Text
            End If
            
            Result = Predure(ll$, CStr(Result), txtResult.Text)
            lstView.AddItem "--------------------------"
            ReDim Preserve numGroup(lstView.ListCount - 1)
            numGroup(lstView.ListCount - 1) = txtResult.Text
            lstView.AddItem Space(22 - Len(Display2(Result))) & Display2(Result)
            ReDim Preserve numGroup(lstView.ListCount - 1)
            numGroup(lstView.ListCount - 1) = Result
            lstView.AddItem Space(25)
            lstView.AddItem Space(25)
            lstView.AddItem Space(22 - Len(Display2(Result))) & Display2(Result)
'            ReDim Preserve numGroup(lstView.ListCount - 1)
'            numGroup(lstView.ListCount - 1) = Result
            lstView.AddItem "×"
            ReDim Preserve numGroup(lstView.ListCount - 1)
            numGroup(lstView.ListCount - 1) = "×"
            txtResult.Text = ""
            lstView.Selected(lstView.ListCount - 1) = True
            
        Case 2 '减法
            txtExplain.Locked = False
            txtExplain.Text = " - 用于把两数相减,例如:A-B。 请输入减数。"
            txtExplain.Locked = True
            If Not Check(txtResult.Text) Then Exit Sub
            comdate = Left(lstView.list(lstView.ListCount - 1), 2)
            If lstView.ListCount = 0 Or comdate = "结果" Or mFinish = True Then '计算开始时
                If comdate = "结果" Or mFinish = True Then
                    lstView.AddItem Space(10)
                    If mFinish Then mFinish = False
                End If
                lstView.AddItem Space(22 - Len(txtResult.Text)) & txtResult.Text
                ReDim Preserve numGroup(lstView.ListCount - 1)
                numGroup(lstView.ListCount - 1) = txtResult
                lstView.AddItem "-"
                ReDim Preserve numGroup(lstView.ListCount - 1)
                numGroup(lstView.ListCount - 1) = "-"
                Result = Val(txtResult.Text)
                txtResult.Text = ""
                lstView.Selected(lstView.ListCount - 1) = True
                Exit Sub
            End If
            
            jj$ = Trim(lstView.list(lstView.ListCount - 1)) '计算过程中
            If jj$ = "÷" And txtResult.Text = 0 Then
               txtExplain.Locked = False
               txtExplain.Text = "除法错误,除数不能为零"
               txtExplain.Locked = True
               txtResult.Text = ""
               Exit Sub
            End If
            'lstView.RemoveItem lstView.ListCount - 1
            If jj$ = "×" Or jj$ = "÷" Then
                lstView.list(lstView.ListCount - 1) = jj$ & Space(20 - Len(txtResult.Text)) & txtResult.Text
            Else
                lstView.list(lstView.ListCount - 1) = jj$ & Space(22 - Len(txtResult.Text) - Len(jj$)) & txtResult.Text
            End If
            
            Result = Predure(jj$, CStr(Result), txtResult.Text)
            lstView.AddItem "------------------------"
            ReDim Preserve numGroup(lstView.ListCount - 1)
            numGroup(lstView.ListCount - 1) = txtResult.Text
            lstView.AddItem Space(22 - Len(Display2(Result))) & Display2(Result)
            ReDim Preserve numGroup(lstView.ListCount - 1)
            numGroup(lstView.ListCount - 1) = Result
            lstView.AddItem Space(25)
            lstView.AddItem Space(25)
            lstView.AddItem Space(22 - Len(Display2(Result))) & Display2(Result)
'            ReDim Preserve numGroup(lstView.ListCount - 1)
'            numGroup(lstView.ListCount - 1) = Result
            lstView.AddItem "-"
            ReDim Preserve numGroup(lstView.ListCount - 1)
            numGroup(lstView.ListCount - 1) = "-"
            txtResult.Text = ""
            lstView.Selected(lstView.ListCount - 1) = True
        Case 3 '初法
            txtExplain.Locked = False
            txtExplain.Text = " ÷ 用于把两数相除,例如:A÷B。 请输入除数。"
            txtExplain.Locked = True
            If Not Check(txtResult.Text) Then Exit Sub
            comdate = Left(lstView.list(lstView.ListCount - 1), 2)
            If lstView.ListCount = 0 Or comdate = "结果" Or mFinish = True Then
                If comdate = "结果" Or mFinish = True Then
                    lstView.AddItem Space(10)
                    If mFinish Then mFinish = False
                End If
                lstView.AddItem Space(22 - Len(txtResult.Text)) & txtResult.Text
                ReDim Preserve numGroup(lstView.ListCount - 1)
                numGroup(lstView.ListCount - 1) = txtResult.Text
                lstView.AddItem "÷"
                ReDim Preserve numGroup(lstView.ListCount - 1)
                numGroup(lstView.ListCount - 1) = "÷"
                Result = Val(txtResult.Text)
                txtResult.Text = ""
                lstView.Selected(lstView.ListCount - 1) = True
                Exit Sub
            End If
            ff$ = Trim(lstView.list(lstView.ListCount - 1))
            If ff$ = "÷" And txtResult.Text = 0 Then
                txtExplain.Locked = False
               txtExplain.Text = "除法错误,除数不能为零"
               txtExplain.Locked = True
               txtResult.Text = ""
               Exit Sub
            End If
            'lstView.RemoveItem lstView.ListCount - 1
            If ff$ = "×" Or ff$ = "÷" Then
               lstView.list(lstView.ListCount - 1) = ff$ & Space(20 - Len(txtResult.Text)) & txtResult.Text
            Else
               lstView.list(lstView.ListCount - 1) = ff$ & Space(22 - Len(txtResult.Text) - Len(ff$)) & txtResult.Text
            End If
            
            Result = Predure(ff$, CStr(Result), txtResult.Text)
            lstView.AddItem "-------------------------"
            ReDim Preserve numGroup(lstView.ListCount - 1)
            numGroup(lstView.ListCount - 1) = txtResult.Text
            lstView.AddItem Space(22 - Len(Display2(Result))) & Display2(Result)
            ReDim Preserve numGroup(lstView.ListCount - 1)
            numGroup(lstView.ListCount - 1) = Result
            lstView.AddItem Space(25)
            lstView.AddItem Space(25)
            lstView.AddItem Space(22 - Len(Display2(Result))) & Display2(Result)
'            ReDim Preserve numGroup(lstView.ListCount - 1)
'            numGroup(lstView.ListCount - 1) = Result
            lstView.AddItem "÷"
            ReDim Preserve numGroup(lstView.ListCount - 1)
            numGroup(lstView.ListCount - 1) = "÷"
            txtResult.Text = ""
            lstView.Selected(lstView.ListCount - 1) = True
            
        Case 4 '等于
            txtExplain.Locked = False
            txtExplain.Text = " = 用于计算最后结果,例如:A+B=C,相当于功能键X,只是不退出计算器和返回结果 。 如果继续使用,请输入数据"
            txtExplain.Locked = True
             If Not Check(txtResult.Text) Then Exit Sub
             comdate = Left(lstView.list(lstView.ListCount - 1), 2)
              If lstView.ListCount = 0 Or comdate = "结果" Or mFinish = True Then
                 If comdate = "结果" Or mFinish = True Then
                    lstView.AddItem Space(10)
                    If mFinish Then mFinish = False
                 End If
                 lstView.AddItem "结果" & Space(20 - Len(txtResult.Text)) & txtResult.Text
                 ReDim Preserve numGroup(lstView.ListCount - 1)
                 numGroup(lstView.ListCount - 1) = txtResult.Text
                 lstView.Selected(lstView.ListCount - 1) = True
                 Result = Val(txtResult.Text)
                 Exit Sub
            End If
              dd$ = Trim(lstView.list(lstView.ListCount - 1))
              If dd$ = "÷" And txtResult.Text = 0 Then
                txtExplain.Locked = False
               txtExplain.Text = "除法错误,除数不能为零"
               txtExplain.Locked = True
               txtResult.Text = ""
               Exit Sub
             End If
              'lstView.RemoveItem lstView.ListCount - 1
             If dd$ = "×" Or dd$ = "÷" Then
                 lstView.list(lstView.ListCount - 1) = dd$ & Space(20 - Len(txtResult.Text)) & txtResult.Text
             Else
                 lstView.list(lstView.ListCount - 1) = dd$ & Space(22 - Len(txtResult.Text) - Len(dd$)) & txtResult.Text
             End If
             
             Result = Predure(dd$, CStr(Result), txtResult.Text)
             lstView.AddItem "-------------------------"
             ReDim Preserve numGroup(lstView.ListCount - 1)
             numGroup(lstView.ListCount - 1) = txtResult.Text
             lstView.AddItem "结果" & Space(20 - Len(Display2(Result))) & Display2(Result)
             ReDim Preserve numGroup(lstView.ListCount - 1)
             numGroup(lstView.ListCount - 1) = "="
             lstView.Selected(lstView.ListCount - 1) = True
             If Result < 1 And Result > -1 Then
                 txtResult.Text = Format(CStr(Result), "0.##########")
             Else
                 txtResult.Text = CStr(Result)
             End If
            
             mFinish = False
''             Finaleresult = Result
             Result = 0
    End Select
End Sub

Private Sub cmdOperator_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button <> 2 Then Exit Sub
    Select Case Index
        Case 0 '修改+
            txtExplain.Locked = False
            txtExplain.Text = " ←  用鼠标右键点取此按键,可以修改过程编辑区中被选中项的运算符为 +"
            txtExplain.Locked = True
            Modification 1, "+"
        Case 1 '修改×
            txtExplain.Locked = False
            txtExplain.Text = " ←  用鼠标右键点取此按键,可以修改过程编辑区中被选中项的运算符为 ×"
            txtExplain.Locked = True
            Modification 1, "×"
        Case 2 '修改-
            txtExplain.Locked = False
            txtExplain.Text = " ←  用鼠标右键点取此按键,可以修改过程编辑区中被选中项的运算符为 -"
            txtExplain.Locked = True
            Modification 1, "-"
        Case 3 '修改÷
            txtExplain.Locked = False
            txtExplain.Text = " ←  用鼠标右键点取此按键,可以修改过程编辑区中被选中项的运算符为 ÷"
            txtExplain.Locked = True
            Modification 1, "÷"
        'Case 4 '修改=
        
    End Select
End Sub


Private Sub Form_Activate()
    SetHelpID 80005
End Sub

'键盘处理
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim Shiftcode As Integer
    Shiftcode = Shift And 7
    Debug.Print KeyCode
    Select Case KeyCode
'        Case 107
'            If txtResult.SelStart = 0 And Val(txtResult.Text) < 0 Then
'                txtResult.Text = Abs(Val(txtResult.Text))
'            Else
'                cmdOperator_Click 0
'            End If
'        Case 109, 189
'            If txtResult.SelStart = 0 Then
'                cmdNumber_Click 11
'            Else
'                cmdOperator_Click 2
'            End If
'        Case vbKeyMultiply, 56
'            If (Shift = 1 And KeyCode = 56) Or KeyCode = 106 Then
'                cmdOperator_Click 1
'            End If
'        Case 111, 191 'vbKeyDivide
'           cmdOperator_Click 3
'        Case 187, 13
'            If Shiftcode = 1 And KeyCode = 187 Then

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -