Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Отлов ошибок |
Автор: Stimrol 18.4.2006, 17:43 | ||
Смысл в том чтобы при вводе буквы в поле едит(введенное значение потом обрабатывается как int) выдавалась такая ошибка но вместо нее почему то ""й" is not a valid integer!" Пробовал ставить на onchange, onpress-ничег оне меняется Хелп плиз. |
Автор: _hunter 18.4.2006, 17:56 | ||
а не проще ли так:
? |
Автор: knitmax87 18.4.2006, 22:56 |
Запусти приложение не из билдера, а из папки с пректом и все будет работать. Кстати вариант _hunter правильнее. |
Автор: AntonChik 19.4.2006, 08:32 |
юзайте уже TryStrToInt в таких случаях (начиная с шестого билдера). очень удобная штука. |
Автор: Stimrol 19.4.2006, 09:56 |
Покрутил еще немного получилось следующим образом:код как предложил hunter запускаю прогу(не в билдере),ввожу в это поле букву-вылетает ""й" is not a valid integer!" дабл клик на эдит и меняю еще раз на букву-вылетает та же ошибка но еще и мое сообщение возникает, но почему то тока со второго раза так как можно избавится от системного сообщения? проверку на ошибки поставил в событие onkeydown и еще-тока сейчас заметил если введенную букву заменить на цыфры то вылетает только мое сообщение) |
Автор: tramp 19.4.2006, 10:18 |
Лучше поставить в OnChange. А еще лучше для Edita c помощью Set определить, что можно, чего нельзя. |
Автор: Partizan 19.4.2006, 10:33 |
да просто пользователю нужно разрешать вводить только допустимые символы, в вашем примере - цифры от 0 до 9, знак + или - ну и ещё Decimal Separator |
Автор: Stimrol 19.4.2006, 16:55 |
Запрет на ввод определнных символов не подходит обязательно отлов и ошибки и вывод сообщений о ней |
Автор: Stimrol 20.4.2006, 18:57 |
Ладно согласен на запрет ввода букв как это можно сделать без использования компонента MaskEdit? расскажите поподробнее как сделать через Set |
Автор: tramp 21.4.2006, 09:55 |
По поводу Set см пример http://www.sysman.ru/index.php?act=Print&client=html&f=48&t=2978 А по KeyPress можно еще выпендриться так: if(Key>='1' && Key<='9') { Edit1->Text=Edit1->Text+Key; } else Key=13; |
Автор: Stimrol 21.4.2006, 15:21 |
tramp, огромный respect!!!и аццкое спасибо за Set ссылка мне очень помогла-кароче то что доктор прописал Всем участвовавшим в обсуждении спасибо)) ![]() Вопрос исчерпан) |