• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Обработка данных и ошибок в Edit

  • Автор темы Intersap
  • Дата начала
Статус
Закрыто для дальнейших ответов.
I

Intersap

Пусть в поле Edit вводится число в пределах от Min до Max. Обработку ошибки от ввода букв я сделал, а не подскажите как сделать обработку чтобы если число не попадает в диапазон программа дальше не работала, а просила перезадать число. Спасибо. Тривиальный пример:
Код:
procedure TForm1.Button1Click(Sender: TObject);

var u: real; //

begin

Label1.Caption := ' ';

try

u := StrToFloat(Edit1.Text);

except

on EConvertError do

begin

Edit1.Text:='';

exit;

end;

end;

Label1.Caption := FloatToStr(u);

end;

end.
 
M

mss

> Обработку ошибки от ввода букв я сделал

Не сделал ты ее)
Ничто не мешает юзеру вставить в Edit ошибочную строку из буфера обмена, при этом OnChange не возникнет и твоя программа тут же облажается.
 
N

nayke

> Обработку ошибки от ввода букв я сделал

Не сделал ты ее)
Ничто не мешает юзеру вставить в Edit ошибочную строку из буфера обмена, при этом OnChange не возникнет и твоя программа тут же облажается.

Причем тут OnChange я не очень понимаю, если обоработка ведется при нажатии кнопки , т.е. постфактум.

Intersap сказал(а):
Пусть в поле Edit вводится число в пределах от Min до Max. Обработку ошибки от ввода букв я сделал, а не подскажите как сделать обработку чтобы если число не попадает в диапазон программа дальше не работала, а просила перезадать число. Спасибо.

добавить условия
Код:
try

u := StrToFloat(Edit1.Text);
if (u>=min)and(u<=max) then 
begin
//непосредственно что делает прога после нажатия кнопки
end;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!