Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 04.03.2021
Сообщений: 3

Как исправить ошибку.Мне пожалуйста сделать так чтобы btn12 могла ставить в edt1 - перед числом . Для решения задач

04.03.2021, 12:04. Показов 2294. Ответов 8

Студворк — интернет-сервис помощи студентам
Здравствуйте, я не могу понять как мне сделать так чтобы при нажатии минуса (той же кнопки 12 ) в edt1 появлялся минус. Минус рабочий , но начинать пример заведомо отрицательного числа я не могу выдает ошибку (Пример :-3+5=2).также не могу понять как сделать так чтобы при делении на ноль выдавало бы ошибку с моей надписью. Пытался сделать программа не работала вообще.

Delphi
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    btn1: TButton;
    btn2: TButton;
    btn3: TButton;
    btn4: TButton;
    btn5: TButton;
    btn6: TButton;
    btn7: TButton;
    btn8: TButton;
    btn9: TButton;
    btn10: TButton;
    btn11: TButton;
    edt1: TEdit;
    btn12: TButton;
    btn13: TButton;
    btn14: TButton;
    btn15: TButton;
    btn16: TButton;
    btn17: TButton;
    btn18: TButton;
    btn19: TButton;
    btn20: TButton;
    lbl1: TLabel;
    procedure btn3Click(Sender: TObject);
    procedure btn6Click(Sender: TObject);
    procedure btn7Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
    procedure btn8Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure btn5Click(Sender: TObject);
    procedure btn9Click(Sender: TObject);
    procedure btn16Click(Sender: TObject);
    procedure btn15Click(Sender: TObject);
    procedure btn17Click(Sender: TObject);
    procedure btn10Click(Sender: TObject);
    procedure btn11Click(Sender: TObject);
    procedure btn12Click(Sender: TObject);
    procedure btn13Click(Sender: TObject);
    procedure btn14Click(Sender: TObject);
    procedure btn18Click(Sender: TObject);
    procedure btn20Click(Sender: TObject);
    procedure btn19Click(Sender: TObject);
    procedure btn21Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  b,d,s,f,l:real;
  z,q:string;
 
implementation
 
{$R *.dfm}
 procedure TForm1.btn3Click(Sender: TObject);   //1
begin
edt1.Text:=edt1.Text + '1';
lbl1.Visible:=False;
end;
 
procedure TForm1.btn6Click(Sender: TObject);   //2
begin
edt1.Text:=edt1.Text + '2';
lbl1.Visible:=False;
end;
 
procedure TForm1.btn7Click(Sender: TObject);//3
begin
edt1.Text:=edt1.Text + '3';
lbl1.Visible:=False;
end;
 
procedure TForm1.btn2Click(Sender: TObject); //4
begin
edt1.Text:=edt1.Text + '4';
lbl1.Visible:=False;
end;
 
procedure TForm1.btn4Click(Sender: TObject); //5
begin
edt1.Text:=edt1.Text + '5';
lbl1.Visible:=False;
end;
 
procedure TForm1.btn8Click(Sender: TObject);  //6
begin
edt1.Text:=edt1.Text + '6';
lbl1.Visible:=False;
end;
 
procedure TForm1.btn1Click(Sender: TObject);  //7
begin
edt1.Text:=edt1.Text + '7';
lbl1.Visible:=False;
end;
 
procedure TForm1.btn5Click(Sender: TObject); //8
begin
    edt1.Text:=edt1.Text + '8';
    lbl1.Visible:=False;
end;
 
procedure TForm1.btn9Click(Sender: TObject);  //9
begin
edt1.Text:=edt1.Text + '9';
lbl1.Visible:=False;
end;
 
procedure TForm1.btn16Click(Sender: TObject);  //0
begin
edt1.Text:=edt1.Text + '0';
lbl1.Visible:=False;
end;
 
procedure TForm1.btn15Click(Sender: TObject); //
begin
edt1.Text:=' ';
lbl1.Visible:=True;
end;
 
procedure TForm1.btn17Click(Sender: TObject);  //,
begin
edt1.Text:=edt1.Text + ',';
end;
 
procedure TForm1.btn10Click(Sender: TObject); //+
begin
b:=strtofloat(edt1.Text);
z:='+';
edt1.Clear;
end;
 
procedure TForm1.btn11Click(Sender: TObject);  //=
begin
 d:=strtofloat(edt1.Text);
 edt1.Clear;
 if z='+' then s:=b+d;
  if z='-' then s:=(b*(-1))-d;
   if z='*' then s:=b*d;
     if z='/' then s:=b/d;
     if z='sqrt' then s:=Sqrt(b);
     if z='sqrt' then l:=Sqrt(f);
     if z='%' then s:=b/100*d;
      if z='$' then s:=Exp(d*LN(b));
 
 edt1.Text:=FloatToStr(s);
end;
 
procedure TForm1.btn12Click(Sender: TObject);
begin
  edt1.Text:=edt1.Text + '-';
d:=strtofloat(edt1.Text);
z:='-';
edt1.Clear;
end;
 
procedure TForm1.btn13Click(Sender: TObject);
begin
 b:=strtofloat(edt1.Text);
z:='*';
edt1.Clear;
end;
 
procedure TForm1.btn14Click(Sender: TObject);
begin
b:=strtofloat(edt1.Text);
z:='/';
edt1.Clear;
end;
 
procedure TForm1.btn18Click(Sender: TObject);
begin
b:=strtofloat(edt1.Text);
edt1.Clear;
s:=Sqrt(b);
l:=Sqrt(f);
edt1.Text:=FloatToStr(s)
 
end;
 
procedure TForm1.btn20Click(Sender: TObject);
 
begin
b:=strtofloat(edt1.Text);
z:='%';
edt1.Clear;
 
end;
procedure TForm1.btn19Click(Sender: TObject);
begin
 b:=strtofloat(edt1.Text);
z:='$';
edt1.Clear;
end;
 
 
 
 
procedure TForm1.btn21Click(Sender: TObject);
begin
d:=strtofloat(edt1.Text);
z:='-';
edt1.Text:=edt1.Text+'-';
end;
 
end.
Project1.rar
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.03.2021, 12:04
Ответы с готовыми решениями:

Как сделать так чтобы картинка могла меняться через определенный промежуток времени?
как сделать так чтобы картинка могла меняться через определенный промежуток времени на C# Windows Forms

Подскажите пожалуйста, как мне исправить ошибку?
Вторая задача в прикреплённом файле. Заранее прошу прощения за костыли, и кровь из глаз экспертов. #include <iostream> #include...

Как сделать одну переменную так, чтобы она могла использоваться во всех других функциях
У меня такой вопрос, как сделать одну переменную так, чтобы она могла использоваться во всех других функциях. пробовал через public static...

8
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.03.2021, 12:22
И зачем Вы прикрепили exe файл? Прикрепите архив всего проекта.
0
0 / 0 / 0
Регистрация: 04.03.2021
Сообщений: 3
04.03.2021, 13:33  [ТС]
Извините, вот cal - копия.rar .
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
04.03.2021, 16:59
Если я правильно понял, то видимо так:
Delphi
1
2
3
4
5
6
7
procedure TForm1.btn12Click(Sender: TObject);
begin
  edt1.Text:='-' + edt1.Text;
d:=strtofloat(edt1.Text);
z:='-';
edt1.Clear;
end;
Добавлено через 2 минуты
Архив ваш не посмотреть, у меня защитник в нем Trojan:Win32/Wacatac.B!ml видит, а я ему верю.
0
0 / 0 / 0
Регистрация: 04.03.2021
Сообщений: 3
05.03.2021, 06:00  [ТС]
Здравствуйте, при в писании вашего кода в программу , выдает ошибку . То есть при первом выключении вылазит ошибка , но при нажатии "ок" минус появляется . И так каждый раз как я присваиваю первому числу отрицательное значение .
Миниатюры
Как исправить ошибку.Мне пожалуйста сделать так чтобы btn12 могла ставить в edt1 - перед числом . Для решения задач  
0
Модератор
4140 / 2353 / 810
Регистрация: 15.11.2015
Сообщений: 9,405
05.03.2021, 09:21
Цитата Сообщение от Oganes Посмотреть сообщение
при в писании вашего кода в программу , выдает ошибку
Вообще-то, это ваш код, просто переставили знак "-".
А в ошибке написано, что не так. Разве "-" является числом?
0
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
05.03.2021, 11:10
Лучший ответ Сообщение было отмечено northener как решение

Решение

Цитата Сообщение от Oganes Посмотреть сообщение
Delphi
1
edt1.Text:=' ';
Я бы это заменил бы на
Delphi
1
edt1.Text:='';
в 130 строке. Это из бросающегося в глаза.

А насчет минуса - нужно дизейблить кнопку с минусом, если в edt1 пусто.
Т.е., если уже какие-то цифры введены - можно давить на минус.
А, и нужно различать унарный минус и операцию вычитание. Даже на обычных калькуляторах они различаются.
1
Модератор
4140 / 2353 / 810
Регистрация: 15.11.2015
Сообщений: 9,405
05.03.2021, 11:17
Цитата Сообщение от Oganes Посмотреть сообщение
я не могу понять как мне сделать так чтобы при нажатии минуса (той же кнопки 12 ) в edt1 появлялся минус
А тебя не смущает, что edt1 очищается после добавления минуса?
Delphi
1
2
3
4
5
6
7
procedure TForm1.btn12Click(Sender: TObject);
begin
  edt1.Text:=edt1.Text + '-';
d:=strtofloat(edt1.Text);
z:='-';
edt1.Clear; // Очистка edt1.
end;
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,611
06.03.2021, 02:29
Цитата Сообщение от Constcat Посмотреть сообщение
А, и нужно различать унарный минус и операцию вычитание. Даже на обычных калькуляторах они различаются.
Вот это правильный ответ!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.03.2021, 02:29
Помогаю со студенческими работами здесь

Возможно ли сделать так, чтобы могла использоваться любая буква (не цифра) как переменная, вводимая пользовате
def f( a, b, c ): return ( a and (not b) ) or c def g( a, b, c ): return (not a) or (not b) or (not c) def h( a, b, c...

Как мне сделать так что бы можно было ставить одну запятую после цифр в edit1 delphi?
Как мне сделать так что бы можно было ставить одну запятую после цифр в edit1 delphi? Добавлено через 5 минут procedure...

Как сделать так, чтобы из каждого столбца я могла найти максимальный элемент и сформировать массив из максимальных элементов
program n1; uses crt; const n=100;m=100; var P: array of integer; H: array of integer; q: array of integer; ...

У меня в классе, 2 функции, как сделать так, чтобы одна функция, могла использовать перем. другой функц
А именно, чтобы функции onShon, onShotFalse, onBaraban видели переменные из функции loadSounds, если я выношу переменные из функции...

Как сделать так, чтобы за форму не могла "спрятаться" другая форма?
Здравствуйте! У меня такой вопрос: Есть две формы - полноэкранная(formborder=none, windowstate=maximize) и обычная. Пожалуйста,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru