![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ошибка в MaskEdit
lety © (2002-09-20 18:39:00)В MaskEdit`е создается маска для даты (" . . "). Если при вводе даты не дописать ее до конца, и перейти к друкому контролу, то возникает ошибка с сообщением "Invalid input value. Use escape key to abadon changes." В событии OnExit ее перехватить не получается (она генерируется раньше?).
Что можно сделать?
TTCustomDelphiMaster (2002-09-21 23:04:00) [1]Без потомков никак.
type
TMyMaskEdit = class(TMaskEdit)
procedure ValidateEdit; override;
end;
...
implementation
procedure TMyMaskEdit.ValidateEdit;
begin
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
With TMyMaskEdit.Create(self) do
begin
EditMask := "000;1;_";
Parent := Form1;
top := 10;
left := 10;
end;
end;
ZrenBy (2002-09-21 22:29:00) [2]У меня всё прекрасно работает.
Обращаю внимание, что
EditMask := "!99/99/9999;1;_";
Если там стоит "!99/99/0000;1;_", то действительно
вылазит сообение.
lety (2002-09-21 22:23:00) [3]э! В том-то и дело, что onExit не успевает - ошибка происходит раньше..
А без потомков можно? Мне очень сложно.
TTCustomDelphiMaster (2002-09-21 21:45:00) [4]Создайте потомка TMaskEdit и перепишите метод ValidateEdit
ZrenBy (2002-09-21 20:51:00) [5]Установи свойство EditMask := "!99/99/9999;1;_";
А onExit поставь типа
procedure TfMain.MaskEdit1Exit(Sender: TObject);
var f:Double;
begin
try
f := StrToDate(maskedit1.text);
except
maskedit1.setfocus;
end;
if(f<10000000)then maskedit1.setfocus;
end;
lety (2002-09-21 20:42:00) [6]up