Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Exception

2.3K
25 мая 2003 года
pas
15 / / 22.05.2003
Здравствуйте!
Необходимо отключить исключение, которое возникает при вводе в Edit отличные от типа float и int значений, чтобы я сам выдавал сообщение об ошибке ввода в Еdit.

try
{StrToFloat(Edit->Text);}
catch(EConvertError&)
{Application->MessageBox(“Необходимо вводить целые или рационал. числа”,”Ошибка”, MB_ICONQUESTION);}

При этом возникает не мое сообщение, а встроенное окно исключения. Как отключить его?

Спасибо за внимание!
2.1K
25 мая 2003 года
domovoi
27 / / 27.03.2003
Лично я делал по другому
Создал функцию
bool CheckInt(AnsiString Stroka)
{
int temp;
try
{
temp=Stroka.ToInt();
}
catch (EConvertError&)
{
return false;
}
return true;
}
А потом в программе вызываю ее
if (!CheckInt(Edit1->Text)) Application->MessageBox(...)
293
25 мая 2003 года
SEDEGOFF
586 / / 06.10.2002
У дебя это исключение где возникает - в бильдере?
Если да - то когда программа будет запущена будет выпадать только твое сообщение.
А вообще чтобы не парить мозги делаешь следующее
В обработчике KeyPres компонента Edit ставишь такой обработчик
if(Key!='0'||Key!='1'||...||Key!='.')
Key = 0;
В результате только можно ввести только числа и точку или запятую.
Да кстати не забудь: не надо обнулять когда нажимаешь Backspace
Если не понял могу послать пример
362
26 мая 2003 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by pas
Здравствуйте!
Необходимо отключить исключение, которое возникает при вводе в Edit отличные от типа float и int значений, чтобы я сам выдавал сообщение об ошибке ввода в Еdit.

try
{StrToFloat(Edit->Text);}
catch(EConvertError&)
{Application->MessageBox(“Необходимо вводить целые или рационал. числа”,”Ошибка”, MB_ICONQUESTION);}

При этом возникает не мое сообщение, а встроенное окно исключения. Как отключить его?

Спасибо за внимание!



Попробуй так

double a;
try
{
a = Edit->Text.ToDouble();
}
catch(EConvertError&)
... ну и так далее..

в этом случае у меня точно все отлавливалось нормально

2.3K
26 мая 2003 года
pas
15 / / 22.05.2003
Цитата:
Originally posted by _kolyan


Попробуй так

double a;
try
{
a = Edit->Text.ToDouble();
}
catch(EConvertError&)
... ну и так далее..

в этом случае у меня точно все отлавливалось нормально



Здравствуйте!
Не знаю почему, но выскакивает не мое сообщение об ошибке. а Builder(а). Try-Саtch должен не позволять этого делать. Что не получается.
Может в настройках есть опция, которая запретит генерировать определенное исключение?
Спасибо за внимание!

460
26 мая 2003 года
Berg
261 / / 27.03.2003
> Не знаю почему, но выскакивает не мое сообщение
> об ошибке. а Builder(а). Try-Саtch должен не
> позволять этого делать. Что не получается.
> Может в настройках есть опция, которая запретит
> генерировать определенное исключение?

Читай хоть, что тебе люди отвечают.
SEDEGOFF:
"У дебя это исключение где возникает - в бильдере?
Если да - то когда программа будет запущена будет выпадать только твое сообщение."

Наверняка, *.exe файл не из среды билдера ты не запускал - пусти...
2.3K
26 мая 2003 года
pas
15 / / 22.05.2003
Цитата:
Originally posted by Berg
> Не знаю почему, но выскакивает не мое сообщение
> об ошибке. а Builder(а). Try-Саtch должен не
> позволять этого делать. Что не получается.
> Может в настройках есть опция, которая запретит
> генерировать определенное исключение?

Читай хоть, что тебе люди отвечают.
SEDEGOFF:
"У дебя это исключение где возникает - в бильдере?
Если да - то когда программа будет запущена будет выпадать только твое сообщение."

Наверняка, *.exe файл не из среды билдера ты не запускал - пусти...



Здравствуйте!
Если бы не было проблемы, я бы не обращался в форум! Но она есть. И возникает даже там, где Builder не установлен.
Если Вы не можете помочь, то не стоит на других “наезжать”. Давайте будем вежливыми.
Спасибо за внимание!

3.5K
27 мая 2003 года
vickr
19 / / 24.04.2003
Цитата:
Originally posted by pas
Здравствуйте!
Необходимо отключить исключение, которое возникает при вводе в Edit отличные от типа float и int значений, чтобы я сам выдавал сообщение об ошибке ввода в Еdit.
try
{StrToFloat(Edit->Text);}
catch(EConvertError&)
{Application->MessageBox(“Необходимо вводить целые или рационал. числа”,”Ошибка”, MB_ICONQUESTION);}
При этом возникает не мое сообщение, а встроенное окно исключения. Как отключить его?
Спасибо за внимание!


Отключается окно в свойствах отладчика:
меню Tool->Debugger Options, на странице Langiage Exceptions снять флажки "Stop on Delphi Exceptions" и "Stop on C++ Exceptions".

2.3K
27 мая 2003 года
pas
15 / / 22.05.2003
Цитата:
Originally posted by vickr

Отключается окно в свойствах отладчика:
меню Tool->Debugger Options, на странице Langiage Exceptions снять флажки "Stop on Delphi Exceptions" и "Stop on C++ Exceptions".




Спасибо за помощь!
Признателен.

362
27 мая 2003 года
_kolyan
339 / / 03.12.2002
Странно, а меня нормально работает и с этими галками и без них
2.3K
27 мая 2003 года
pas
15 / / 22.05.2003
Цитата:
Originally posted by _kolyan
Странно, а меня нормально работает и с этими галками и без них



Как мне сказали: У меня глючит “Builder”, его просто надо заменить – сыроват оказался.

371
27 мая 2003 года
Non_prog
193 / / 20.03.2000
Цитата:
Originally posted by pas

У меня глючит “Builder”, его просто надо заменить – сыроват оказался.


Если у тебя билдер 5, то его версия ниже чем 12.34 ?
:)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог