Простой калькулятор с помощью функции Eval
Автор Час   
27.05.2008 г.

Замечательная функция Eval - очень редко используемая, хотя, помогает избежать многих ошибок во время расчёта результатов вычислений. Обязательно почитайте о ней в Help.

А пока приступим к созданию на основе этой функции крошки калькулятора.
Сам пример расположен в прилагаемом файле.
Для того, что бы наш калькулятор имел скромные размеры запишем на событие загрузка формы:
Private Sub Form_Load()
DoCmd.MoveSize 5000, 300 ' Это размеры открываемой формочки
End Sub

Для проверки вводимых данных в поле ввода калькулятора, нам понадобится единственная функция - проверки кода введённого символа - чтобы нельзя было-бы ввести буквы и прочие недопустимые символы.
font color=#000000 face='Courier New' size="2"> Private Function Корректность(Введено) As Boolean
         Корректность = False
  If (Введено >= 48 And Введено <= 57) Then Корректность = TrueExit Function 'Цифры
   If Введено = 43 Then Корректность = TrueExit Function 'Плюс
    If Введено = 8 Then Корректность = TrueExit Function 'Забой
     If Введено = 42 Then Корректность = TrueExit Function 'Умножение
      If Введено = 45 Then Корректность = TrueExit Function 'Минус
       If Введено = 47 Then Корректность = True 'Деление
End Function
После каждой проверки ставим инструкцию : Exit Function - это для того, что бы далее не проверять введённые значения т.к. уже определено - ввод корректен.
Так мы ускорим (Хотя и не на немного) выполнение программы.
Если таких ускорений в большом проекте будет много, то наша программа в итоге будет "летать"..
В примере нет кода обработки ошибок это сделано для лучшего восприятия, хотя в реальной программе обработка ошибок занимает далеко не последнее место..
Для того, чтобы расположить кнопочку с калькулятором на панель необходимо проделать следующее:.
Щелкните на свободном месте панели правой кнопкой мыши, затем Настройка, затем закладка Команды,.
Затем все формы, хватаем левой кнопкой мыши из списка форм - форму Kalkulator и переносим её в панель..
Теперь эта кнопочка будет вызывать наш калькулятор..

Download now
Просмотров: 10196

  Коментарии (6)
 1 Написал(а) час, в 17:29 28.05.2008
Забыл сказать, что введённое для расчёта выражение может быть и таким: 100+5/2*8-4+235*456/25
 2 Написал(а) Gыwи, в 08:33 29.05.2008
симпатично :)  
а вот ещё бы скобочки... ;)
 3 Написал(а) час, в 12:03 29.05.2008
Спасибо за совет.. :)  
А вот и ответ: 
Добавьте на проверку корректности  
If Введено = 40 Then Корректность = True 'скобка ( 
If Введено = 41 Then Корректность = True 'скобка ) 
 
А вообще-то то только старт. Для доработок уйма возможностей. 
И выплывающая клавиатура, и появление калькулятора взле поля расчётов и ......... 
Можете продолжить список....
 4 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 18:57 09.09.2009
А как же десятичные (например 25,3)?
 5 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 15:27 05.03.2010
У меня не заработал не только со скобочками но и 0,5 я не смог ввести?!
 6 Написал(а) Denni, в 18:13 12.05.2010
для работы с десятичными дробями и скобками: 
 
Private Sub Поле0_AfterUpdate() 
On Error Resume Next 
Dim strPole As String 
Refresh 
If Me!Поле0 = "" Or IsNull(Me!Поле0) = True Then Exit Sub 'Корректность значения поля Me!Поле0 
strPole = Me!Поле0 
Me!Поле0 = Replace(Me!Поле0, ",", ".") 
 
Me!Поле2 = Eval(Me!Поле0) 'Непосредственно подсчёт 
End Sub 
 
и 
 
If Введено = 46 Then Корректность = True: Exit Function '. 
If Введено = 44 Then Корректность = True: Exit Function ', 
If Введено = 40 Then Корректность = True: Exit Function '( 
If Введено = 41 Then Корректность = True: Exit Function ')

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code