![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с исключительной ситуацией [D7, XP]
JTAG © (2005-11-30 12:50:00)В программе использую поле ввода Edit2, предполагаю что в него можно ввести только целые числа не буквы. Для того чтобы обезопасить программы от возможности ввода букв пользователем подсмотрев пример в книжке написал такой код
try
strtoint(edit2.text); считал из edit значение и попробовал конвертнуть его в int если не получилось выполняю исключение
except
on EConvertError do
edit2.setFocus; устанавливаю опять фокус ввода на edit 2
end;
ну и все это потом зациклю.
Почему этот пример неработает? все равно вылетаю в предупреждением что введенный символ например "a" не integer значение.
JTAG (2005-11-30 13:53:00) [1]БЮольшое спасибо заработало!
KioSik (2005-11-30 13:41:00) [2]Ega23! Спасибо за исправление, просто у меня х2 описан локально и про него забыла
Ega23 (2005-11-30 13:30:00) [3]
> var code , x2:integer;
JTAG (2005-11-30 13:23:00) [4]А что такое x2 делфи ругается
[Error] Moxa_Uart.pas(801): Undeclared identifier: 'x2'
KioSik (2005-11-30 13:07:00) [5]procedure TForm_facts.Edit1Change(Sender: TObject);
var code:integer;
begin
val(Edit1.Text,x2,code);
if code<>0 then Edit1.Text:='';
end;
Буквенные данные не будут даже вводиться в Edit. Разделитель - точка или запятая - зависит от настройки Windows
JTAG (2005-11-30 12:59:00) [6]Спасибо заработало
Ega23 (2005-11-30 12:53:00) [7]
> Почему этот пример неработает? все равно вылетаю в предупреждением
> что введенный символ например "a" не integer значение.
>
Потому, что из-под отладчика запускаешься. Запусти exe-файл не из Delphi.