Калькулятор на паскале windows forms


Рейтинг 4.52/64:

31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

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

22.01.2015, 23:17. Показов 11984. Ответов 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

2388 / 1300 / 1492

Регистрация: 29.08.2014

Сообщений: 4,665

23.01.2015, 07:31

вопрос: а дизайнер форм чем не устраивает?



0



31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

23.01.2015, 09:45

 [ТС]

Дизайнер форм, то есть Windows Forms меня устраивает. Проблема то в другом. Какой код к TextBox написать, чтобы он принимал нажатия цифр с клавиатуры, и как кнопки написать так, чтобы они добавляли цифры в TextBox. Я просто совсем зеленый в этом плане. Поэтому мне нужна обучающая помощь, то есть код с комментариями почти на каждом шаге.



0



Почетный модератор

64312 / 47609 / 32742

Регистрация: 18.05.2008

Сообщений: 115,181

23.01.2015, 10:47

Сообщение от Gedeon300

чтобы они добавляли цифры в TextBox.

Ставите курсор в поле ввода, нажимаете клавиши и все будет само отображаться в данном поле.



0



31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

23.01.2015, 10:49

 [ТС]

А как связать это поле с графическими кнопками цифр?
И ещё сделать так, чтобы при нажатии на клавиатуры клавиш математических действий(*,/,+,-) выполнялись действия? Как сделать кнопки с действиями и как заставить их работать с текстовым полем?



0



Puporev

Почетный модератор

64312 / 47609 / 32742

Регистрация: 18.05.2008

Сообщений: 115,181

23.01.2015, 10:55

Pascal
1
2
3
4
5
6
7
8
9
procedure Form1.button1_Click(sender: Object; e: EventArgs);
begin
TextBox1.Text:=TextBox1.Text+'1';
end;
 
procedure Form1.button2_Click(sender: Object; e: EventArgs);
begin
TextBox1.Text:=TextBox1.Text+'2';  
end;

и так для каждой кнопки



0



2388 / 1300 / 1492

Регистрация: 29.08.2014

Сообщений: 4,665

23.01.2015, 10:57

и фокус обратно в textbox1 возвращать, чтобы на клавиатурные цифры реагировал



0



Почетный модератор

64312 / 47609 / 32742

Регистрация: 18.05.2008

Сообщений: 115,181

23.01.2015, 11:13

Да ничего не нужно, хоть сколько нажимаю на кнопки столько и выводится.

Добавлено через 1 минуту
А, если вводить и кнопками и с клавы…



0



Gedeon300

31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

23.01.2015, 15:14

 [ТС]

А, если вводить и кнопками и с клавы…[/QUOTE]
Вот что у меня получилось, кнопки цифр работают без проблем. Как заставить работать кнопки действия, я пока не знаю.

Кликните здесь для просмотра всего текста

Вот код кнопок.

Кликните здесь для просмотра всего текста

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
procedure Form1.button1_Click(sender: Object; e: EventArgs);
begin
    TextBox1.Text := TextBox1.Text + '1';
end;
 
procedure Form1.button2_Click(sender: Object; e: EventArgs);
begin
    TextBox1.Text := TextBox1.Text + '2'; 
end;
 
procedure Form1.button3_Click(sender: Object; e: EventArgs);
begin
    TextBox1.Text := TextBox1.Text + '3'; 
end;
 
procedure Form1.button4_Click(sender: Object; e: EventArgs);
begin
    TextBox1.Text := TextBox1.Text + '4'; 
end;
 
procedure Form1.button5_Click(sender: Object; e: EventArgs);
begin
    TextBox1.Text := TextBox1.Text + '5'; 
end;
 
procedure Form1.button6_Click(sender: Object; e: EventArgs);
begin
    TextBox1.Text := TextBox1.Text + '6'; 
end;
 
procedure Form1.button7_Click(sender: Object; e: EventArgs);
begin
    TextBox1.Text := TextBox1.Text + '7'; 
end;
 
procedure Form1.button8_Click(sender: Object; e: EventArgs);
begin
    TextBox1.Text := TextBox1.Text + '8'; 
end;
 
procedure Form1.button9_Click(sender: Object; e: EventArgs);
begin
    TextBox1.Text := TextBox1.Text + '9'; 
end;
 
procedure Form1.button10_Click(sender: Object; e: EventArgs);
begin
    
end;
 
procedure Form1.button11_Click(sender: Object; e: EventArgs);
begin
    
end;
 
procedure Form1.button12_Click(sender: Object; e: EventArgs);
begin
    
end;
 
procedure Form1.button13_Click(sender: Object; e: EventArgs);
begin
    
end;
 
end.

Всякие команды вроде var b:= ReadInteger и последующее выполнение действия никак не работают, говорит, нет, нельзя так делать. Да и такой вариант подойдет только набросок/черновик, ведь тогда набираемое число врят ли будет видно в TextBox.

Кликните здесь для просмотра всего текста



0



31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

23.01.2015, 15:20

 [ТС]

button10 это операция сложения. Подскажите код, остальные кнопки я попробую сделать сам. Пока хотя бы сделать ввод с графических кнопок. А потом уже надо будет заморочиться на счет ввода с клавиатуры и фильтрацией символов, чтобы принимались только цифры и действия. Код с прибавлением к TextBox выше и так бы не сработал, потому что он считает цифры в TextBox string типом. Как заставить его считать Integer или Real я не знаю.



0



Почетный модератор

64312 / 47609 / 32742

Регистрация: 18.05.2008

Сообщений: 115,181

23.01.2015, 15:29

Столько калькуляторов написано например в Делфи, найдите в поиске код и переделайте. Суть та же и коды похожи.

Добавлено через 1 минуту
Например здесь
Создание калькулятора
Замените Edit на Textbox



0



31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

23.01.2015, 15:29

 [ТС]

Так мне же понять надо, а не просто сделать. Я и так поиском пользовался, калькулятор 3 качал себе и просматривал их код. И ничего не понял. Поэтому и вопрос задал. Нужна помощь именно для этой среды. Увидеть разницу.



0



Почетный модератор

64312 / 47609 / 32742

Регистрация: 18.05.2008

Сообщений: 115,181

23.01.2015, 15:32

Сообщение от Gedeon300

Как заставить его считать Integer или Real я не знаю.

И Вы беретесь за калькулятор? Да почитайте хоть что-то прежде, здесь ведь не учебник что бы объяснять прописные истины.



0



31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

23.01.2015, 15:38

 [ТС]

Некоторые вещи я уже знаю. Я же и начинаю с простого. Не сразу весь функционал виндового калькулятор хочу реализовать, а потихоньку. Вот, та ссылка, что вы мне дали, я проверил код, в PascalABC.NET нет Caption, и как добавлять значение кнопки к текстовому полю я не имею ни малейшего понятия. И кстати, как его сделать Integer именно в ABC.NET я не знаю тоже. Кстати, именно к PascalABC.NET учебников почти нет, а те, которые я нашел, большинство примеров из них работают с ошибками, то есть не компилируется. Поэтому единственный источник знаний практический опыт реальных программистов, с форумов вроде этого. Учебники по простому ABC не подойдут, потому что там редактора Windows Forms нет вообще, да и примеров такого калькулятора я не нашел.

Я пробовал копировать Delphi калькуляторы, но не выходит. Многих простых команд просто нет в ABC.NET, а просто копирование кода никак не способствует его понимаю. Прописные истины я вроде знаю, но вот с графическими объектами работать не умею, этому и хочу научиться. Решил попробовать калькулятор, для начала.
Если поделитесь ссылкой на хорошее разъяснение или какую-то энциклопедию с разъяснением аналогов команд Delphi в ABC.NET, буду благодарен. Потому что именно из-за того, что я такого ничего не нашел, обратился сюда.



0



Puporev

Почетный модератор

64312 / 47609 / 32742

Регистрация: 18.05.2008

Сообщений: 115,181

23.01.2015, 16:16

Сообщение было отмечено Gedeon300 как решение

Решение

Сообщение от Gedeon300

нет Caption

зато есть свойство InputBox1.Text;

Сообщение от Gedeon300

как его сделать Integer

Pascal
1
2
3
var a:integer;
.................
a:=strtoint(InputBox1.Text);

и так далее…

Сообщение от Gedeon300

Многих простых команд просто нет в ABC.NET

А Вы зайдите в справку и почитайте разделы из Справочник по языку



1



31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

23.01.2015, 16:36

 [ТС]

Сообщение от Puporev

А Вы зайдите в справку и почитайте разделы из Справочник по языку

Не всё получается понять с первого раза. Минут через 15 вообще перестаю понимать, что есть что. Только когда ещё в альтернативных источника нахожу примера 3 на изучаемую тему, то только тогда бывает доходит. Спасибо за ответ, сейчас попробую, как сработает.



0



Почетный модератор

64312 / 47609 / 32742

Регистрация: 18.05.2008

Сообщений: 115,181

23.01.2015, 16:38

Сообщение от Gedeon300

Минут через 15 вообще перестаю понимать

Тогда плохи Ваши дела, иногда приходится часами читать, думать, пробовать…



0



31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

23.01.2015, 16:41

 [ТС]

Сообщение от Puporev

Тогда плохи Ваши дела, иногда приходится часами читать, думать, пробовать…

Немного уточню. Перестаю понимать, если я с чем-то сталкиваюсь в первый раз, и пытаюсь пройти дальше. Бесполезное занятие. Вся проблема в том, что примеров маловато, и четкого учебника просто нет. Я не знаю, в какой последовательности что мне нужно изучать. Поэтому мне и трудно определиться и что-то понять. Обучение ведь должно быть структурированным, с 1 по 11 класс, например, а не 1 класс, потом 5, 8, затем 3, вообщем, суть вы поняли. Вроде нашел какой-то учебник, песни о Паскале, как думаете, мне подойдет?

Кликните здесь для просмотра всего текста

Попробовал, не получается скомпилить. Кнопка сложения, в чем с ней проблема?



0



31 / 1 / 0

Регистрация: 16.01.2015

Сообщений: 18

23.01.2015, 16:47

 [ТС]

И как мне вводить вторую переменную b так, чтобы при вводе её было в видно в текстовом поле?



0



Puporev

Почетный модератор

64312 / 47609 / 32742

Регистрация: 18.05.2008

Сообщений: 115,181

23.01.2015, 16:51

Набираете 1 число, это переменная а, очищаете поле ввода, набираете 2 число, это переменная b.
Складываете их c:=a+b;
Очищаете поле вода и пишете Textbox1.Text:=inttostr(c);

Добавлено через 2 минуты

Pascal
1
2
3
4
5
a:=strtoint(Textbox1.Text);
Textbox1.Text:='';
b:=strtoint(Textbox1.Text);
c:=a+b;
Textbox1.Text:=inttostr(c);



1



BasicMan

Эксперт

29316 / 5623 / 2384

Регистрация: 17.02.2009

Сообщений: 30,364

Блог

23.01.2015, 16:51

Помогаю со студенческими работами здесь

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

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

Запуск таски из виндового с шедулера с максимальными правами
Всем доброго времени суток.

Возникла следующая проблема.

Есть cmd-файл на виндовом сервере, который запускает процесс загрузки…

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

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

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

Или воспользуйтесь поиском по форуму:

20

Новые блоги и статьи

Все статьи  

Все блоги / 

Трансферное обучение с предобученными моделями в Keras с Python

AI_Generated 06.05.2025

Суть трансферного обучения проста: взять модель, которая уже научилась решать одну задачу, и адаптировать её для решения другой, похожей задачи. Мозг человека работает по схожему принципу. Изучив. . .

Циклические зависимости в C#: методы управления и устранения

stackOverflow 06.05.2025

Если вы хоть раз работали над не самым тривиальным проектом на C#, то наверняка сталкивались с той ситуацией, когда компилятор вдруг начинает сыпать странными ошибками о невозможности разрешить. . .

Как перейти от Waterfall к Agile

EggHead 06.05.2025

Каскадная модель разработки Waterfall — классический пример того, как благие намерения превращаются в организационный кошмар. Изначально созданная для упорядочивания хаоса и внесения предсказуемости. . .

Оптимизация SQL запросов — Продвинутые техники

Codd 06.05.2025

Интересно наблюдать эволюцию подходов к оптимизации. Двадцать лет назад всё сводилось к нескольким простым правилам: «Избегайте SELECT *», «Используйте индексы», «Не джойните слишком много таблиц». . . .

Создание микросервисов с gRPC и Protobuf в C++

bytestream 06.05.2025

Монолитные приложения, которые ещё недавно считались стандартом индустрии, уступают место микросервисной архитектуре — подходу, при котором система разбивается на небольшие автономные сервисы, каждый. . .

Многопоточность и параллелизм в Python: потоки, процессы и гринлеты

py-thonny 06.05.2025

Параллелизм и конкурентность — две стороны многопоточной медали, которые постоянно путают даже бывалые разработчики.

Конкурентность (concurrency) — это когда ваша программа умеет жонглировать. . .

Распределенное обучение с TensorFlow и Python

AI_Generated 05.05.2025

В машинном обучении размер имеет значение. С ростом сложности моделей и объема данных одиночный процессор или даже мощная видеокарта уже не справляются с задачей обучения за разумное время. Когда. . .

CRUD API на C# и GraphQL

stackOverflow 05.05.2025

В бэкенд-разработке постоянно возникают новые технологии, призванные решить актуальные проблемы и упростить жизнь программистам. Одной из таких технологий стал GraphQL — язык запросов для API,. . .

Распознавание голоса и речи на C#

UnmanagedCoder 05.05.2025

Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .

Реализация своих итераторов в C++

NullReferenced 05.05.2025

Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .

Наверх

Формулировка задачи:

всё работает правильно,но не появляется кнопка «/(деление)», что сделано неправильно?

Решение задачи: «Организация простого калькулятора»

textual

myButton13:=new Button;
   myButton13.Text:='/';
   myButton13.Left:=280;
   myButton13.top:=230;

Объяснение кода листинга программы

  1. Создается новый объект типа Button с именем myButton13.
  2. Устанавливается текст кнопки myButton13 на ‘/’.
  3. Устанавливается левое положение кнопки myButton13 на 280.
  4. Устанавливается верхнее положение кнопки myButton13 на 230.

Оцени полезность:

6   голосов , оценка 4.333 из 5

В этом видео я покажу как создать свой калькулятор в pascalABC WindowsForms, который сможет вычислять числа, в моём калькуляторе будет поле ввода, и кнопки с помощью которых можно будет получать результат, а так же сообщение, которое будет выскакивать в случае ошибки, всем приятного просмотра!!!

Посмотри так же другие видео:
урок по созданию приложения ====    • Как создать своё приложение на pascal…  

Плейлист с видео:
уроки по pascal приложения ====    • уроки по pascal приложения  

ссылка на документ:
https://drive.google.com/file/d/1kLVN…

тайм кодики:
0:00 — вступление
1:07 — создание приложеиня
1:55 — кастомизация
3:08 — создание текстового ввода
3:43 — изменение шрифта
3:58 — кастомизация
4:28 — создание кнопки
4:39 — кастомизация
7:23 — действия для кнопок
9:01 — присваивать текст
13:51 — задание меню ошибки

#видеоуроки #урокипрограммирования #программирование #pascalABC

Буду рад хорошему коментарию ≽^•⩊•^≼

На этой странице сайта вы можете посмотреть видео онлайн Как сделать своё приложение калькулятор в pascalABC Windows forms длительностью часов минут секунд в хорошем качестве, которое загрузил пользователь Pozetive 28 Апрель 2024, поделитесь ссылкой с друзьями и знакомыми, на youtube это видео уже посмотрели 698 раз и оно понравилось 16 зрителям. Приятного просмотра!

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 17

ТЕМА: Проектирование интерфейса с использованием

элементов управления: кнопок, надписей, текстового поля

и др.

ЦЕЛЬ: Сформировать умения создавать приложения в

Pascal Windows Forms.

1. Последовательность выполнения практического занятия.

1.1. Работа на учебном занятии

а. Выполнить практические задания.

б. Показать результаты работы преподавателю и при необходимости

сохранить их в свою рабочую папку на ПК.

в. Убрать рабочее место.

г. Оформить отчёт.

2. Методические указания

Упражнение 1.

Создать проект, в котором пользователь сможет ввести число,

получить его значение в квадрате и квадратный корень из этого числа.

Этапы выполнения задания

1. Создадим в новой папке (Primer171) новый проект (Project171).

2. Изменить свойство Text у формы на «Квадрат и корень».

3. Изменить свойство Size440; 360.

4. Для того что бы форма открывалась в центре экрана

свойство StartPosition установите CenterScreen.

5. Разместить на форме

три объекта – Label1, Label2, Label3;

три объека TextBox1, TextBox2, TextBox3;

и кнопку (объект Button1):

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как транслировать экран айфона на ноутбук windows
  • 80070426 ошибка windows 10
  • Политика охлаждения системы windows 11
  • Как активировать microsoft office 2019 на windows 11
  • Как windows 7 32 bit сделать 64 bit без переустановки