Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TDateTimeField.EditMask [D5]


alehan ©   (2002-03-15 18:46:00) 

Задал сабж как "dd.mm.yyyy". Если в run-time ввести неправильную дату, генерит exception: "... is not a valid date and time". И не выпускает из контрола. Подскажите пожалуйста, где бы это можно было отловить?


Lav   (2002-04-03 16:18:00) [1]

Приветствую! Если не тяжело как эта проблема решилась?
Зарание спасибо.
<post@kubnet.kuban.ru> для LAV


alehan   (2002-03-19 13:23:00) [2]

Спасибо! Разобрался.


asafr   (2002-03-18 14:59:00) [3]

Ну, если ты хочешь, чтобы при тебя "выпускал" MaskEdit после введения неправильной даты, то в Properties->EditMask->InputMask установи ##/##/####;1;_, а потом проверяй
Try
StrToDate(MaskEdit.Text)
except
MessageDlg("Не правильно задана дата!", mtError,[mbOK],0);
MaskEdit.SetFocus;
exit;
end;


Fareader   (2002-03-18 14:29:00) [4]

Поставь обработку на событие поля
OnSetText или OnValidate - я не помню точно которое из них, они срабатывают до передачи данных в Dataset


roottim   (2002-03-18 13:35:00) [5]

ну если не хочеш сам проверять... то используй готовые компоненты RX, Eh и тп


alehan   (2002-03-18 12:13:00) [6]

> Johnmen

OnPostError срабатывает когда делаешь Query.Post

А проблема такая: в DBEdit редактируется дата, для которой задан DateTimeField.EditMask как указано выше. Пользователь вводит например "13.13.2000" и при попытке выйти из DBEdit получает ошибку ""13.13.2000" is not a valid date and time".

Далее следует попытка стереть дату, как следствие - "" . . " is not a valid date and time"

Отчаявшись, он, тихо матерясь, вводит какую угодно правильную дату, лишь бы получить возможность выйти из контрола.

Я почему-то сразу не догадался, но лечится это написанием своего обработчика на DateTimeField.OnSetText


Johnmen   (2002-03-16 00:14:00) [7]

OnPostError


Наверх

Титульная страница Поиск, карта сайта Написать письмо