![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 - при потере фокуса (выходе?)