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

  • 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Обработка данных и ошибок в 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.
 
> Обработку ошибки от ввода букв я сделал

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

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

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

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

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

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

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

Курс AD