1 / 1 / 4
Регистрация: 07.10.2012
Сообщений: 123
1

Если вводит в объект Edit отрицательное число, то выдает ошибку "-" is not a valid integer value". Как исправить?

13.11.2012, 17:20. Показов 3468. Ответов 35
Метки нет (Все метки)

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
var
  Form1: TForm1;
 a,r:integer;
 l,s,v,p:real;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Edit2Change(Sender: TObject);
begin
p:=3;
r:=strtoint (edit1.Text);
a:=strtoint (edit2.Text);
case a of
1: begin
  l:=2*p*r;
  edit3.Text:='Длина оружности L= '+floattostrf(l,fffixed,1,0);
  end;
  2: begin
  s:=p*r*r;
  edit3.Text:='Площадь круга S= '+floattostrf(s,fffixed,1,0);
  end;
  3: begin
  v:=(4*r*r*r)/3;
  edit3.Text:='Объем шара V= '+floattostrf(v,fffixed,1,0);
  end;
end;
end;
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2012, 17:20
Ответы с готовыми решениями:

Как исправить ошибку "is not a valid integer value"?
при запуске программы выводит ошибку ""is not a valid integer value var a:array of integer; ...

Как исправить ошибку "Is not a valid integer value"?
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils,...

разобраться почему выдаёт ошибку "is not a valid integer value"??
fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { MatrC->Visible=false; ...

Выдает ошибку " Нельзя преобразовать тип real к integer". Как исправить?
Выдает ошибку :" Нельзя преобразовать тип real к integer". Как исправить? program zadaniemn2; ...

35
95 / 14 / 13
Регистрация: 26.05.2012
Сообщений: 63
13.11.2012, 17:24 2
Пишешь простой кусок программы:
Delphi
1
2
3
4
5
6
if Edit1.Text[1]='-' then 
 Begin
  Edit1.Text[1]:='0';
  x:=Edit1.Text*(-1);
 end
 else x:=Edit1.Text;
0
1 / 1 / 4
Регистрация: 07.10.2012
Сообщений: 123
13.11.2012, 17:30  [ТС] 3
Цитата Сообщение от Any0019 Посмотреть сообщение
Пишешь простой кусок программы:
if Edit1.Text[1]='-' then
Begin
Edit1.Text[1]:='0';
x:=Edit1.Text*(-1);
end
else x:=Edit1.Text;
Он мне выделяет красным x:=Edit1.Text*(-1); хотя х я обозначил за переменную.
0
95 / 14 / 13
Регистрация: 26.05.2012
Сообщений: 63
13.11.2012, 17:37 4
ну тогда напиши в две строки:
x:=Edit1.Text;
x:=x*(-1);

Добавлено через 1 минуту
По крайней мере попробуй и скажи, что получилось)
Да и вообще, лучше напиши, какая выдается ошибка (снизу)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31254 / 20430 / 7964
Регистрация: 22.10.2011
Сообщений: 35,470
Записей в блоге: 6
13.11.2012, 17:38 5
Может, кто-то забыл StrToInt/StrToFloat? Что значит "умножить" в контексте строк?
0
95 / 14 / 13
Регистрация: 26.05.2012
Сообщений: 63
13.11.2012, 17:40 6
Упс...

Добавлено через 13 секунд
Спасибо)

Добавлено через 35 секунд
Что это я так...?!)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31254 / 20430 / 7964
Регистрация: 22.10.2011
Сообщений: 35,470
Записей в блоге: 6
13.11.2012, 17:40 7
Торопиться не надо - ошибок будет меньше
0
386 / 74 / 31
Регистрация: 13.04.2012
Сообщений: 127
13.11.2012, 17:41 8
Берите по модулю.
0
1 / 1 / 4
Регистрация: 07.10.2012
Сообщений: 123
13.11.2012, 17:43  [ТС] 9
Цитата Сообщение от al1as Посмотреть сообщение
Берите по модулю.
А как взять по модулю?
0
95 / 14 / 13
Регистрация: 26.05.2012
Сообщений: 63
13.11.2012, 17:56 10
Abs(x)=>|x|

Добавлено через 3 минуты
Но сдесь не поможет брать модуль)
0
1 / 1 / 4
Регистрация: 07.10.2012
Сообщений: 123
13.11.2012, 17:57  [ТС] 11
Цитата Сообщение от Any0019 Посмотреть сообщение
Abs(x)=>|x|

Добавлено через 3 минуты
Но сдесь не поможет брать модуль)
А тогда как же быть?
Меня это окно с ошибкой уже измотало)
Как вводишь в edit2 "-" и вылазит
0
95 / 14 / 13
Регистрация: 26.05.2012
Сообщений: 63
13.11.2012, 17:58 12
1) я хотел написать "Здесь"
2) нужно написать
Delphi
1
2
3
4
5
6
if Edit1.Text[1]='-' then 
 Begin
 Edit1.Text[1]:='0';
 x:=StrToInt(Edit1.Text)*(-1);
 end
 else x:=StrToInt(Edit1.Text);
0
1 / 1 / 4
Регистрация: 07.10.2012
Сообщений: 123
13.11.2012, 18:00  [ТС] 13
Цитата Сообщение от Any0019 Посмотреть сообщение
Abs(x)=>|x|

Добавлено через 3 минуты
Но сдесь не поможет брать модуль)
А если вводить с минуса в edit1, то все норм, а в edit2 уже выкобениватеся)
0
95 / 14 / 13
Регистрация: 26.05.2012
Сообщений: 63
13.11.2012, 18:02 14
всмысле?
0
1 / 1 / 4
Регистрация: 07.10.2012
Сообщений: 123
13.11.2012, 18:04  [ТС] 15
Цитата Сообщение от Any0019 Посмотреть сообщение
всмысле?
Я имел ввиду, что если вводить с минуса в edit1, то все норм, а в edit2 уже вылазит ошибка "-" is not a valid integer value"
0
95 / 14 / 13
Регистрация: 26.05.2012
Сообщений: 63
13.11.2012, 18:06 16
Потому что, я расписал тебе функцию, для обработки '-' в поле edit1, а теперь, просто подставь для edit2)))
0
1 / 1 / 4
Регистрация: 07.10.2012
Сообщений: 123
13.11.2012, 18:07  [ТС] 17
Цитата Сообщение от Any0019 Посмотреть сообщение
Потому что, я расписал тебе функцию, для обработки '-' в поле edit1, а теперь, просто подставь для edit2)))
Вот не поверишь, ничего не работает!(((
Компилятор ошибок не выдает, а если опять с минуса вводить, то опять ошибка выходит(((
Я уж и не знаю
0
Модератор
3476 / 2600 / 740
Регистрация: 19.09.2012
Сообщений: 7,966
13.11.2012, 18:10 18
Ну так добавь проверку: если первый символ в Едит "-" и он же единственный, то ничего не делать, пока еще чего-нибудь не введешь.
Delphi
1
(if Edit2.Text[1] = '-') and (Length(Edit2.Text) = 1) then Exit;
0
95 / 14 / 13
Регистрация: 26.05.2012
Сообщений: 63
13.11.2012, 18:10 19
Delphi
1
2
3
4
5
6
if Edit2.Text[1]='-' then 
 Begin
 Edit2.Text[1]:='0';
 x:=StrToInt(Edit2.Text)*(-1);
 end
 else x:=StrToInt(Edit2.Text);
ты ввел вот так?
0
386 / 74 / 31
Регистрация: 13.04.2012
Сообщений: 127
13.11.2012, 18:11 20
Delphi
1
2
if Edit1.Text[1]='-' then
    Edit1.Text:=inttostr(abs(strtoint(Edit1.Text)));
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2012, 18:11

Исправить ошибку: "is not a valid integer value"
void __fastcall TForm3::Button1Click(TObject *Sender) {...

Программа для перевода в транслит выдает ошибку на "}" "Ссылка на объект не указывает на экземпляр объекта."
Вот код: if (radioButton6.Checked == true) { ...

Как исправить ошибку "Приведение строки "" к типу "Double" является недопустимым"?
Выдает ошибку в строке nasel(n).mat = Int(line(2)). Приведение строки "" к типу "Double" является...

Как исправить ошибку "Unable to add window -- token null is not valid; is your activity running?"
Пишу приложение Android Studio. Надо добавить MusicController в приложении. При нажатии на кнопку...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.