Проверка корректности интервала дат

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Проверка корректности интервала дат

Сообщение Marisha_P »

Здравствуйте всем!
Подскажите, пожалуйста, как грамотно осуществить проверку корректности ввода интервала дат?
Т.е. всё стандартно - есть два поля
`Период с ` .@@@@@@@@@@ ` по ` .@@@@@@@@@@

Хотелось бы, чтоб при изменении начальной даты, курсор вставал сразу на конечную, и уже после попытки выхода с конечной даты выдавал сообщение, если вдруг интервал задан некорректно...
Сначала попробовала сделать следующим образом:

Код: Выделить всё

cmCheckField:   {
case curfield of
 #dfrom:  {SelectField(#dto);}
 end;  

cmSetCurField :
{   if CurField = #dto then
     {  if dto<dfrom then
           {abort;
             Message ('Конечная дата не может быть раньше начальной!');
           }
     }
};
Проблема в том, что если выбираем из календаря дату, то всё нормально, а если начальную дату вводишь ручками и жмешь Enter , то сразу выходит сообщение , что 'Конечная дата не может быть раньше начальной!'. Как это исправить?:)
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Re: Проверка корректности интервала дат

Сообщение oiko »

Enter вызывает событие cmdefault - обрабатывай его
Marisha_P
Местный житель
Сообщения: 232
Зарегистрирован: 10 ноя 2010, 13:49

Re: Проверка корректности интервала дат

Сообщение Marisha_P »

Когда из поля выходишь по Enter почему то проверка cmSetCurField срабатывает сразу же при переходе на поле конечной даты, а не после попытки уйти с этого поля ...
Kolsey Zhenya
Сообщения: 13
Зарегистрирован: 20 мар 2013, 17:41

Re: Проверка корректности интервала дат

Сообщение Kolsey Zhenya »

Попробуйте обрабатывать cmcheckfield (Событие возникает непосредственно после модификации пользователем одного из полей при попытке уйти с него.)
Ответить