Показать сообщение отдельно
  #1  
Старый 21.07.2011, 13:38
eu6pc eu6pc вне форума
Прохожий
 
Регистрация: 21.07.2011
Сообщения: 8
Репутация: 10
По умолчанию Как очистить поле DATA, не потеряв маску ввода в DBEDIT ?

Добрый день, коллеги.
Имеем ситуацию:
БД (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;

Ошибки корректно отлавливаются, выводится сообщение об ошибке, поле очищается, НО !!! пропадает маска ввода! и дату ввести уже не получается.
Подскажите, как быть ?
Ответить с цитированием