C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
MaskEdit
Eduard
Отправлено: 14.09.2004, 17:03


Не зарегистрирован







Есть поле MaskEdit предполагающее ввод 6 цифр! Если введено, например, 5 цифр и пользователь пытается
перейти на другое поле, или нажать кнопку Отмена, закрывающую текущую форму, возникает сообщение об ошибке на ENG языке. Как перехватить ету ошибку чтобы выдать свое сообщение об ошибке на РУССКОМ! Спасибо!
Konstantine
Отправлено: 14.09.2004, 17:10


Мастер участка

Группа: Модератор
Сообщений: 545



почитай в маске что такое 0 и что такое 9
Guest
Отправлено: 16.09.2004, 18:17


Не зарегистрирован







Дело в том, что нельзя допускать чтобы пользователь ввел "ничего"! Для того и используется MaskEdit!
Возникла конкретная ситуация, когда пользователь начал вводить данные, и ввел 3 цифры вместо 6, например 456 и... передумал! Хочет закрыть форму, а ему выскакивает непонятное сообщение и все носятся по офису в поисках програмера, не зная что делать дальше!
Konstantine
Отправлено: 17.09.2004, 08:33


Мастер участка

Группа: Модератор
Сообщений: 545



пусть MaskEdit допускает пустую строку, но при выходе из контрола проверяй на значение на valid
joynter
Отправлено: 17.09.2004, 09:35


Станционный диспетчер

Группа: Участник
Сообщений: 137



try
{
bla bla ... MaskEdit1->Text;
}
catch (EDBEditError)
{
ShowMessage("повторите ввод");
}
Guest
Отправлено: 17.09.2004, 10:11


Не зарегистрирован







А что EDBEditError вызывается всегда?
Я думал только при вводе в поле
QUOTE

EDBEditError is thrown when an application attempts to use data that are incompatible with the mask specified for a field.
joynter
Отправлено: 17.09.2004, 10:25


Станционный диспетчер

Группа: Участник
Сообщений: 137



я по аглицки плохо, вот по дедушке Архангельскому:
QUOTE

Исключение EDBEditError генерируется,
если приложение пытается использовать данные,
не соответствующие заданной маске для поля.
Маска, задаваемая свойством EditMask, ограничивает данные,
которые могут вводиться в окно редактирования или в поле данных.
AVC
Отправлено: 17.09.2004, 11:26


Ветеран

Группа: Модератор
Сообщений: 1583



Не смотря на странное название EDBEditError (позволяющее предположить что это исключение для баз данных) TCustomMaskEdit порождает EDBEditError при ошибке ввода из TCustomMaskEdit.SetText и TCustomMaskEdit.ValidateError

Вернуться в Вопросы программирования в C++Builder