|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Некрасивое отображение значения в TDBEditEh при использовании маски
У меня в БД Firebird в таблице есть поле с типом «NUMERIC(9,1)».
Мне нужно, чтоб в приложении пользователь не мог ввести больше двух цифр в целой части и 1 в дробной. Для этого я использую компонент «TDBEditEh», т.к. в нем есть свойство «EditMask», которое я поставил в значение «99,9;_» Все бы ничего, но при установки курсора в окошко «TDBEditEh», выглядет не очень красиво, отображается значение см. рис. внизу введите сюда описание изображения Может можно как-нибудь поправить? Т.е. чтоб "8" не съезжала влево и не выглядела как "8_". Честно говоря думал что свойство http://www.ehlib.com/online-help/fra...ile=index.html может поправить ситуацию – но не помогло. |
#2
|
||||
|
||||
Да в принципе правильно шаблон маски отображается, - два начальных разряда и завершающий один после запятой,просто видимо подставляемое туда значение (из поля таблицы?) отличается от заданного как 99,9
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
Цитата:
Ну конечно в поле БД, стоит значение "8,9", ну это же не повод, после "8" вставлять "_". |
#4
|
||||
|
||||
Как раз повод,маска ведь на два разряда, либо ноль принудительно подставлять (10,;20,;80,etc.) или пользовать без шаблона маски
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Цитата:
Так что получается, выходит мне нужно убирать маску, и событие "KeyPress" писать, все время анализируя в DBEdit уже введенные значения? т.е. - число - число - разделительный знак - число и все...... (чтобы такого непонятного отображения не было) |
#6
|
||||
|
||||
Проще смириться, все маски так работают, 8_,9 визуально подсказывает пользователю правила набора, а вот автоматом непонятно, что будет введено дальше, - 08,9 или 80,9,сразу не угадаешь, просто в таблице хранить 08,9 можно только текстом
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
Еще вариант: можно при нажатии кнопки "Enter" анализировать значение, и менять маску на "9.9", но потом ее опять нужно менять на "99.9" - но это будет еще то...
|
#8
|
||||
|
||||
В смысле, нужно следить за поступившими из поля значениями и если до запятой только один разряд принудительно добавлять перед ним нулевой начальный
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
|||
|
|||
Цитата:
Ну где-то так, просто вид портится, только при наличии курсора "|" в DBEdit, а так все нормально |
#10
|
|||
|
|||
и вообще на то пошло, то "_", нужно было ставить не после "8", а ПЕРЕД ней (
Последний раз редактировалось Konstantin-78, 17.06.2018 в 21:12. |
#11
|
|||
|
|||
нашел компонент "TDBNumberEditEh" (с возможностью контроля при вводе за количеством цифр после запятой).
Но только один небольшой минус, придется доделать контроль при вводе количества цифр перед запятой (но то такое) |