Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ошибка в 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо