Страница 1 из 1

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

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

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

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

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

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

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

Добавлено: 18 мар 2013, 10:47
oiko
Enter вызывает событие cmdefault - обрабатывай его

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

Добавлено: 18 мар 2013, 14:31
Marisha_P
Когда из поля выходишь по Enter почему то проверка cmSetCurField срабатывает сразу же при переходе на поле конечной даты, а не после попытки уйти с этого поля ...

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

Добавлено: 22 мар 2013, 14:16
Kolsey Zhenya
Попробуйте обрабатывать cmcheckfield (Событие возникает непосредственно после модификации пользователем одного из полей при попытке уйти с него.)