Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

MaskEdit в KOL   Найти похожие ветки 

 
DmiSb   (2004-11-04 10:54) [0]

Как проще организовать такую штуку ?
Уточняю: нужно контролировать ввод в формате "#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.

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

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


 
ecm   (2004-11-04 11:18) [1]

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


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

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


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

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


 
Gandalf ©   (2004-11-17 18:13) [4]

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



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
14-1117214164
Alexander Panov
2005-05-27 21:16
2005.06.29
Слов нет. Кто-то глючит.


4-1114426398
Суслик
2005-04-25 14:53
2005.06.29
TerminateProcess


11-1100959828
Vladimyr
2004-11-20 17:10
2005.06.29
OnPaint = 100 раз ?!..


1-1117623677
Kolan
2005-06-01 15:01
2005.06.29
Чтение из Com порта используя поток.


4-1114770645
Sour Smile
2005-04-29 14:30
2005.06.29
Работа с сетью из-под сервиса