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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - 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