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

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

MaskEdit в KOL


DmiSb ©   (2004-11-04 10:54:00) 

Как проще организовать такую штуку ?
Уточняю: нужно контролировать ввод в формате '#0.00', т.е. денежных сумм.

Сделал такую проверочку

procedure TMainF.EditBoxChar(Sender: PControl; var Key: Char;
 Shift: Cardinal);
begin
 if not (key in ['0'..'9','.',#8]) then
   key:=#0;
 if (Pos('.', EditBox.Text)>0) and not (key in [ #8]) then
   if Length(EditBox.Text)-Pos('.',EditBox.Text)>1 then key:=#0;
end;

Вроде работает. Но если пользователь ввел "123.5", тогда нужно дописывать еще один нолик при выходе, чтобы было "123.50", но у EditBox нет события onExit.

Или может я вообще ерундой занимаюсь и существует какое-нибудь простое решение ?

Заранее спасибо.


Gandalf   (2004-11-17 18:13:00) [1]

Можно при каждом вводе тестить по маске RegExpr - регулярных выражений - но это +20(40)Кб... а принцип схожий. Не забываем про Ctrl+V/C при вводе (Shift+Ins)


DmiSb   (2004-11-04 13:25:00) [2]

OnLeave я нашел, спасибо.
Мне было интересно, есть более красивое решение, а то как-то все это не совсем нравиться, хотя и работает. Да и MaskEdit ведет себя немного по другому.


Я(ты)234   (2004-11-04 11:54:00) [3]

самому дописать


ecm   (2004-11-04 11:18:00) [4]

OnLeave - при потере фокуса (выходе?)


Наверх

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