Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2012, 21:49   #1
Ivanacats
Пользователь
 
Регистрация: 23.08.2012
Сообщений: 21
По умолчанию Блокирование вычисления суммы при вводе ошибочного символа

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

Код:
var
  Form1: TForm1;
 b:real;
 s:string;
implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
  a:Real;
  code:Integer;
begin
Val (edt1.text,a,code);
Val (edt2.Text,b,code);
b:=a+b;
Str(b:10:4,s);
lbl3.Caption:=s;
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
b:=0;
str(b:-10:4,s);
lbl3.Caption:=s;
end;

end.

Последний раз редактировалось Stilet; 22.11.2012 в 22:17.
Ivanacats вне форума Ответить с цитированием
Старый 22.11.2012, 22:07   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

Код:
Val (edt1.text,a,code);
Тут code - код ошибки. 0 - если ошибки преобразования нет, иначе номер позиции в строке, где обнаружена первая ошибка.
Т.о. анализируя code можно управлять ходом вычисления.
Код:
if code = 0 then
 {вычисляем}
else
 {просим повторить ввод и завершаем процедуру}


Так думаю ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 22.11.2012, 22:20   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Так думаю ...
Правильно. Если Code не будет равен нулю, то число в нем показывает в какой позиции строки проблема.
А вообще сейчас в моде TryStrToXXX функции.
Val хоть и серьезная функция но устареть умудрилась.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура должна выводить сумму при вводе номера, но кроме суммы выводит еще что такого номера нет yohurt Помощь студентам 1 09.01.2012 07:35
Замена символа при вводе на С Tema_Crazzzy Помощь студентам 0 29.04.2010 00:49
Паскаль - просьба о вводе символа заново Hitmax Помощь студентам 4 14.01.2010 15:07
Автоматический поиск в DBGrid при вводе символа в Edit Irina_87 БД в Delphi 12 12.12.2009 03:53
вычисления суммы: 1! + 2! + 3! + ... PR0Z0N Помощь студентам 2 18.06.2009 22:05