Добрый день, коллеги.
Имеем ситуацию:
БД (interbase), в таблице есть поле типа дата.
На форме - DBEdit для ввода.
Полю присвоена маска ввода: (editmask) !99/99/9999;1;_
Я хочу сделать на форме проверку корректности данных и выводить сообщение об ошибке, при этом хочется чтобы курсор ОСТАВАЛСЯ в этом DBEDIT.
Вешаю обработчик события OnSetText поля:
Код:
procedure TDM.KadryDTRSetText(Sender: TField; const Text: String);
var
d : TDateTime;
begin
try
d:=StrToDate(text);
Sender.AsDateTime:=d;
except
Application.MessageBox('Неверная дата!', 'Ошибка', MB_OK + MB_ICONERROR);
Sender.Clear;
Edit_kadry.perform($28,1,0); // сообщение WM_NEXTDLGCTL
end;
Ошибки корректно отлавливаются, выводится сообщение об ошибке, поле очищается, НО !!! пропадает маска ввода! и дату ввести уже не получается.
Подскажите, как быть ?