Exception
Необходимо отключить исключение, которое возникает при вводе в Edit отличные от типа float и int значений, чтобы я сам выдавал сообщение об ошибке ввода в Еdit.
try
{StrToFloat(Edit->Text);}
catch(EConvertError&)
{Application->MessageBox(“Необходимо вводить целые или рационал. числа”,”Ошибка”, MB_ICONQUESTION);}
При этом возникает не мое сообщение, а встроенное окно исключения. Как отключить его?
Спасибо за внимание!
Создал функцию
bool CheckInt(AnsiString Stroka)
{
int temp;
try
{
temp=Stroka.ToInt();
}
catch (EConvertError&)
{
return false;
}
return true;
}
А потом в программе вызываю ее
if (!CheckInt(Edit1->Text)) Application->MessageBox(...)
Если да - то когда программа будет запущена будет выпадать только твое сообщение.
А вообще чтобы не парить мозги делаешь следующее
В обработчике KeyPres компонента Edit ставишь такой обработчик
if(Key!='0'||Key!='1'||...||Key!='.')
Key = 0;
В результате только можно ввести только числа и точку или запятую.
Да кстати не забудь: не надо обнулять когда нажимаешь Backspace
Если не понял могу послать пример
Здравствуйте!
Необходимо отключить исключение, которое возникает при вводе в Edit отличные от типа float и int значений, чтобы я сам выдавал сообщение об ошибке ввода в Еdit.
try
{StrToFloat(Edit->Text);}
catch(EConvertError&)
{Application->MessageBox(“Необходимо вводить целые или рационал. числа”,”Ошибка”, MB_ICONQUESTION);}
При этом возникает не мое сообщение, а встроенное окно исключения. Как отключить его?
Спасибо за внимание!
Попробуй так
double a;
try
{
a = Edit->Text.ToDouble();
}
catch(EConvertError&)
... ну и так далее..
в этом случае у меня точно все отлавливалось нормально
Попробуй так
double a;
try
{
a = Edit->Text.ToDouble();
}
catch(EConvertError&)
... ну и так далее..
в этом случае у меня точно все отлавливалось нормально
Здравствуйте!
Не знаю почему, но выскакивает не мое сообщение об ошибке. а Builder(а). Try-Саtch должен не позволять этого делать. Что не получается.
Может в настройках есть опция, которая запретит генерировать определенное исключение?
Спасибо за внимание!
> об ошибке. а Builder(а). Try-Саtch должен не
> позволять этого делать. Что не получается.
> Может в настройках есть опция, которая запретит
> генерировать определенное исключение?
Читай хоть, что тебе люди отвечают.
SEDEGOFF:
"У дебя это исключение где возникает - в бильдере?
Если да - то когда программа будет запущена будет выпадать только твое сообщение."
Наверняка, *.exe файл не из среды билдера ты не запускал - пусти...
> Не знаю почему, но выскакивает не мое сообщение
> об ошибке. а Builder(а). Try-Саtch должен не
> позволять этого делать. Что не получается.
> Может в настройках есть опция, которая запретит
> генерировать определенное исключение?
Читай хоть, что тебе люди отвечают.
SEDEGOFF:
"У дебя это исключение где возникает - в бильдере?
Если да - то когда программа будет запущена будет выпадать только твое сообщение."
Наверняка, *.exe файл не из среды билдера ты не запускал - пусти...
Здравствуйте!
Если бы не было проблемы, я бы не обращался в форум! Но она есть. И возникает даже там, где Builder не установлен.
Если Вы не можете помочь, то не стоит на других “наезжать”. Давайте будем вежливыми.
Спасибо за внимание!
Здравствуйте!
Необходимо отключить исключение, которое возникает при вводе в 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".
Отключается окно в свойствах отладчика:
меню Tool->Debugger Options, на странице Langiage Exceptions снять флажки "Stop on Delphi Exceptions" и "Stop on C++ Exceptions".
Спасибо за помощь!
Признателен.
Странно, а меня нормально работает и с этими галками и без них
Как мне сказали: У меня глючит “Builder”, его просто надо заменить – сыроват оказался.
У меня глючит “Builder”, его просто надо заменить – сыроват оказался.
Если у тебя билдер 5, то его версия ниже чем 12.34 ?
:)