подскажите про Try/except

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

Antuan

Подскажите пожалуйста как сделать обход ошибки через try/except...если надо чтобы в строчку были введены только циферки а не буквы....
если можно с примером...!
 
B

Barmutik

Код:
try
StrToInt(Ваша строка);
except
MessageDlg('Строка содержит не числовое значение!', mtWarning, [mbOK], 0);
end;
 
A

Antuan

а что надо пистать вмесот "ваша строка"?//я чего то туплю...?
 
G

Guest

а что надо пистать вмесот "ваша строка"?//я чего то туплю...?

Вместо "ваша строка" в твоем случае нужно писать, к примеру x := edit1.text, где Х перименная целового типа, ну или ни целого (вещественного)! :p

не правильно я тебе подсказал!!! :huh: нужно писать так x := strtoint(edit1.text);

(не ошибается тот кто ни фига не делает, а еще работаю между прочим!!! :angry: )
 
D

DZX

А вот в delphi 10 есть хороший набор функций TryStrTo*

if TryStrToInt(edit1.text,i)
begin
// все ok
end
else
// Error
 
D

DZX

Совершенно верно :) 10 - 2006 (маркетинг однако)
 
A

Antuan

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

большое спасибо Barmutik' у и Димке!
 
R

romka

Можно ещё с помощью обработчика события OnKeyPress у TEdit разрешать и запрещать ввод любых символов.
Вот пример:

procedure TSelForm.Edit2KeyPress(Sender: TObject; var Key: Char);
const
Symbols: set of char=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ',', #8];

begin
If not (Key in Symbols) then
Key:=#0;
end ;


Есть ещё такой способ: StrToFloatDef(Edit1.Text, DefaultValue), здесь DefaultValue возвращается в случае ошибки. Но этот способ не всгда подходит.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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