Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [VB6] Обработка кнопки "ESC", Помогите дописать программу 
V
    Опции темы
kostyaizznu
Дата 22.12.2008, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 30.10.2008
Где: Запорожье

Репутация: нет
Всего: нет



Вот текст программы,помогите дописать код, чтобы при нажатии "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


PM MAIL ICQ Skype   Вверх
kostyaizznu
Дата 22.12.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 30.10.2008
Где: Запорожье

Репутация: нет
Всего: нет



Программа - - - КАЛЬКУЛЯТОР
PM MAIL ICQ Skype   Вверх
Akina
Дата 22.12.2008, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
mb78
Дата 27.12.2008, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.7.2008

Репутация: нет
Всего: нет



Добавить это  в  Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = 27 Then End
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.