Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/64: Рейтинг темы: голосов - 64, средняя оценка - 4.52
31 / 1 / 0
Регистрация: 16.01.2015
Сообщений: 18

Аналог виндового калькулятора

22.01.2015, 23:17. Показов 13090. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не знаю, реально ли это сделать без создания своих форм и/или библиотек, но всё же. Реально ли сделать аналог виндового калькулятора(хотя бы обычного, не инженерного режима, да только с основными действиями: +,-,*,/) при помощи Windows.Forms в новом проекте? Я не смог придумать, какой код написать к тексотовому полю, чтобы оно принимало нажатия с клавиатуры вообще(OnKeyPress, как в Delphi или подобие чего-то такого я ABC.NET не нашел), а если кто-то поможет, то после этого нужно будет ввести условие, чтобы при нажатии символов(букв и другого) или всяких функциональных клавиш вроде F* и так далее отсеивалось, а при нажатии цифр они добавлялись справа. Ничего этого я не умею, но хочу научиться. Прощу помочь мне, я только начал заниматься программированием(около недели), поэтому мне нужна помощь ещё и с объяснением. Просто решение это конечно хорошо, но я хочу именно научиться решать определенные задачи. Заранее благодарю за помощь. Как только эти две вышеприведенные проблемы будут решены и меня научат их решать, я добавлю сюда следующие.

И вообще, хотел спросить, подойдет ли форма TextBox для такой задачи в виде текстового поля, или лучше вручную попробовать написать подобие TEdit из Lazarus?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2015, 23:17
Ответы с готовыми решениями:

Аналог калькулятора Windows на C#
Доброго времени суток. Недавно сел за начальные этапы кодинга на C# и решил написать свой калькулятор, думал что это легко но столкнулся...

Функция-аналог калькулятора
Написать функцию аналог калькулятора Функция принимает - первое число - матрицу чисел с операндами вида: var operations = , ,...

Аналог калькулятора Windows
Опыта в программировании мало но обычный калькулятор консолевский умею.Хотелось бы собрать калькулятор как в винде с кнопочками и окошком...

25
31 / 1 / 0
Регистрация: 16.01.2015
Сообщений: 18
23.01.2015, 16:53  [ТС]
Студворк — интернет-сервис помощи студентам
Выдает ошибку, PABCSystem.pas(5738) : Ошибка времени выполнения: Входная строка имела неверный формат.
Скриншот прилагаю.
Кликните здесь для просмотра всего текста

Ошибка появляется при нажатии плюса. Код вставил ваш, исправил stroint на strtoint, иначе говорил неводомая команда.
Цитата Сообщение от Puporev Посмотреть сообщение
Я поправил свое последнее сообщение
Я сам успел додуматься и исправить.
0
Почетный модератор
 Аватар для Puporev
64321 / 47617 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.01.2015, 16:54
Я поправил свое последнее сообщение
0
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
23.01.2015, 16:54
Когда-то писал простой калькулятор на PascalABC.Net, возможно, некоторые вещи реагируют неправильно (кнопки М), так как не дописал до конца, поскольку продолжил писать на Delphi (инженерный).
Вложения
Тип файла: rar калькулятор.rar (40.2 Кб, 19 просмотров)
1
31 / 1 / 0
Регистрация: 16.01.2015
Сообщений: 18
23.01.2015, 19:04  [ТС]
Цитата Сообщение от erl27 Посмотреть сообщение
Когда-то писал простой калькулятор на PascalABC.Net, возможно, некоторые вещи реагируют неправильно (кнопки М), так как не дописал до конца, поскольку продолжил писать на Delphi (инженерный).
Благодарю за сэмпл, попробую разобраться в вашем коде. Я смотрю, у вас не работает ввод с клавиатуры. Пробовали как-то это исправить, или точнее, доработать?

Что-то тяжеловато мне в вашем коде разобраться. Не могли бы вы прокоменнтировать использование такого огромного кол-ва переменных, и зачем некоторым из них вы присвоили значение? Можете объяснить хотя бы кнопку сложения? Я что-то со всем с ума в ней схожу.
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure Form1.operation(m: byte);
begin
  if M_pm = false then begin
    h := false;
    f := false
  end;
  if (r = false)and(textBox1.Text <> '0') then begin
    if h = false then
      if f = false then
        A := StrToFloat(textBox1.text)
      else f := false
    else begin 
      B := StrToFloat(textBox1.text);
      textBox1.Text := ''; 
      A := counter(A, B, m); 
      textBox1.Text := FloatToStr(A);    
    end;
    r := true    
  end
  else
  if MR = false then A := StrToFloat(textBox1.text);
  g := true;
  q := false;
  MR := true;
end;
1
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
23.01.2015, 19:48
Лучший ответ Сообщение было отмечено Gedeon300 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
///нажатие кнопок " + ", " - ", " * ", " / "
{ Есть числа А и В, над ними будем производить арифметические операции: 
А - первое число, В - второе. h = false - вводим первое число, h = true - второе}
procedure Form1.operation(m: byte);
begin
  if M_pm = false then begin
    h := false;
    f := false
  end;
  if (r = false)and(textBox1.Text <> '0') then //Если кнопку "+", "-", "*", "/" еще не нажали
  begin
    if h = false then //вводим число А
      if f = false then //Кнопка "=" не использовалась
        A := StrToFloat(textBox1.text)
      else //Кнопка "=" использовалась, но обнуляем её (как не использовалась)
        f := false
    else begin //вводим число В
      B := StrToFloat(textBox1.text);
      textBox1.Text := ''; //очищаем поле
      A := counter(A, B, m); //вызываем функцию вычисления и записываем в А
      textBox1.Text := FloatToStr(A); //записываем в поле результат
    end;
    r := true //кнопку "+", "-", "*", "/" уже нажали
  end
  else
  if MR = false then A := StrToFloat(textBox1.text);
  g := true;
  q := false;
  MR := true;
end;
А зачем вам калькулятор на ABC.Net? Пишите на Delphi, литературы много в интернете, в том числе и калькуляторы разной сложности. Я поэтому закинул и продолжил писать на Delphi. Вам нужно калькулятор попроще, без такого количества разных индикаторов, понять суть, а потом можно усложнять. А разобраться в чужих кода далеко не просто...
2
31 / 1 / 0
Регистрация: 16.01.2015
Сообщений: 18
23.01.2015, 21:05  [ТС]
Цитата Сообщение от erl27 Посмотреть сообщение
А разобраться в чужих кода далеко не просто...
Это я уже понял.
Цитата Сообщение от erl27 Посмотреть сообщение
Пишите на Delphi,
Lazarus на Free Pascal пойдет? Там вроде почти всё тоже самое.
Цитата Сообщение от erl27 Посмотреть сообщение
без такого количества разных индикаторов,
Ну да, такого калькулятора как у вас, мне и не надо. Мне хватит цифр, 4 основных действий и равно, причем работы только с целыми числами мне уже хватит выше крыши. Ещё хотелось бы реализовать работу одновременно с клавиатуры и с кнопок, но вот это я не знаю как реализовать. Мне кажется, это вообще не так легко, по крайней мере, сделать средствами ABC.NET. Потому что на Lazarus я видел полноценный виндовый калькулятор, без инженернего режима, но с вводом как с кнопок, так и с клавиатуры.

Цитата Сообщение от erl27 Посмотреть сообщение
if M_pm = false then begin
А это что такое? И как понять
Кликните здесь для просмотра всего текста
Pascal
1
h = false - вводим первое число, h = true - второе}

И что такое
Кликните здесь для просмотра всего текста
Pascal
1
2
3
f := false
else //Кнопка "=" использовалась, но обнуляем её (как не использовалась) 
f := false
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2015, 21:05

Описать функцию Calc(A, B, Op): аналог калькулятора
Описать функцию Calc(A, B, Op) вещественного типа, выполняющую над ненулевыми вещественными числами A и B одну из арифметических операций и...

В момент отработки виндового таймера
В теме https://www.cyberforum.ru/vba/thread818722.html#post4310690 приводил пример использования виндового таймера. Таймер замечательный...

Запуск таски из виндового с шедулера с максимальными правами
Всем доброго времени суток. Возникла следующая проблема. Есть cmd-файл на виндовом сервере, который запускает процесс загрузки...

Аналог Компрессора Данфосс FR-8.5A, Не могу найти аналог компрессора
Кто-нибудь подбирал аналог данного компрессора,он стоит на низкотемпиратурном ларе? Заранее спасибо!

История калькулятора
Добрый вечер. Пытаюсь сделать историю калькулятора через memo, но не получается, чтобы он на каждой новой строке сохранял результат новый....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru