Вот текст программы,помогите дописать код, чтобы при нажатии "ESC" программа завершала работу и осуществлялся выход
Код | Option Explicit Dim MR As Long Public deystvie As String Public pervoe As Double Public vtoroe As Double
Private Sub Command1_Click() MR = MR + Val(Tablo.Caption) Tablo.Caption = "" End Sub
Private Sub Command2_Click() Tablo.Caption = MR End Sub
Private Sub Command3_Click() MR = 0 End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 46 Then sbros_Click If KeyCode = 110 Then tochka_Click
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 8 udalit_Click
Case 42, 43, 45, 47 operacia_Click (47 - KeyAscii) Case 61 plusmin_Click
Case Is > 47 If KeyAscii < 58 Then knopka_Click (KeyAscii - 48)
Case 32 ochistka_Click
End Select
End Sub
Private Sub knopka_Click(Index As Integer)
umnaya.SetFocus ' если были выбраны равно или операция - ввод нового числа: If Ravno.Tag = "второе" Then Tablo.Caption = "0": Ravno.Tag = ""
If Len(Tablo.Caption) < 16 Then ' если длина не превышает допустимой длины числа: If Tablo.Caption = "0." And Tablo.Tag = "" Then ' если на табло ноль и нет режима начала ввода дробного числа - заменяем цифрой c точкой: Tablo.Caption = Index & "."
Else
If Mid(Tablo.Caption, Len(Tablo.Caption), 1) = "." And Tablo.Tag <> "не целое" Then ' на табло целое число и нет режима ввода дробного числа - добавляем цифру к имеющемуся числу справа Tablo.Caption = Mid(Tablo.Caption, 1, Len(Tablo.Caption) - 1) & Index
Else ' на табло дробное число или режим ввода дробного числа - добавляем цифру к надписи табло справа Tablo.Caption = Tablo.Caption & Index End If
End If
End If
Tablo.Tag = "" ' возможен ввод дробного числа
End Sub
Private Sub ochistka_Click()
umnaya.SetFocus
Tablo.Caption = "0" Tablo.Tag = ""
End Sub
Private Sub operacia_Click(Index As Integer)
umnaya.SetFocus
If Ravno.Tag = "" Then If deystvie <> "нет" Then vtoroe = Val(Tablo.Caption): rezultat
End If
Select Case Index Case 0 deystvie = "разделить"
Case 2 deystvie = "вычесть"
Case 4 deystvie = "сложить"
Case 5 deystvie = "умножить"
End Select
pervoe = Val(Tablo.Caption) Ravno.Tag = "второе" End Sub
Private Sub plusmin_Click()
umnaya.SetFocus
Select Case Val(Tablo.Caption) Case Is < 0 Tablo.Caption = Mid(Tablo.Caption, 2, Len(Tablo.Caption)) Case Is > 0 Tablo.Caption = "-" & Tablo.Caption
End Select
End Sub
Private Sub ravno_Click()
umnaya.SetFocus
If Ravno.Tag <> "второе" Then vtoroe = Val(Tablo.Caption) Call rezultat
Ravno.Tag = "второе" ' режим ввода "второго" числа Tablo.Tag = "" ' две переменные ука- deystvie = "нет" ' зывают начальное состояние
Else Ravno.Tag = "" ' можем в "следующий раз" считать вторым число текущее число табло End If
End Sub Private Sub rezultat()
Select Case deystvie
Case "сложить" Tablo.Caption = pervoe + vtoroe
Case "вычесть" Tablo.Caption = pervoe - vtoroe
Case "разделить" If vtoroe <> 0 Then Tablo.Caption = pervoe / vtoroe Else ' на ноль нельзя делить! Tablo.Caption = "ERROR!!" End If
Case "умножить" Tablo.Caption = pervoe * vtoroe
End Select
End Sub
Private Sub sbros_Click()
umnaya.SetFocus
deystvie = "нет"
Tablo.Caption = "0" Tablo.Tag = ""
End Sub
Private Sub Tablo_Change()
Dim z As Byte, t As Byte
z = InStr(1, Tablo.Caption, ",") ' если результат дробное число - ищет позицию запятой t = InStr(1, Tablo.Caption, ".") ' определяет позицию точки
If t = 0 Then ' если точка не найдётся ставим её в конце Tablo.Caption = Tablo.Caption & "."
ElseIf z <> 0 Then ' если нашлась запятая - значение операции дробное число - меняем запятую на точку Tablo.Caption = Mid(Tablo.Caption, 1, z - 1) & "." & Mid(Tablo.Caption, z + 1, Len(Tablo.Caption) - z - 1)
End If
End Sub
Private Sub tochka_Click()
umnaya.SetFocus
' если число целое, то разрешаем ввести дробное число: If Fix(Val(Tablo.Caption)) = Val(Tablo.Caption) Or Ravno.Tag = "второе" Then Tablo.Tag = "не целое" If Ravno.Tag = "второе" Then Tablo.Caption = "0"
End Sub
Private Sub udalit_Click()
umnaya.SetFocus
' является ли число целым? If Fix(Val(Tablo.Caption)) = Val(Tablo.Caption) Then ' если целое - удалим последнюю цифру Tablo.Caption = Mid(Tablo.Caption, 1, Len(Tablo.Caption) - 2) ' а если число было нулём - то так и оставим - "ноль": If Tablo.Caption = "." Then Tablo.Caption = "0"
Else ' если на табло число не целое, то просто удалим последнюю цифру надписи Tablo.Caption = Mid(Tablo.Caption, 1, Len(Tablo.Caption) - 1)
End If
End Sub
Private Sub umnaya_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then ravno_Click
End Sub
|
|