|
Вопрос # 4 731/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
В компоненте TValueListEditor пользователь должен редактировать значения разных типов. Как правильно задать маску для целого и вещественного числа?
Получается что в центре целого числа можно оставить не заполненный символ, так же нет ограничения отдельно для вещественной и дробной части.
 |
Вопрос задал: Roman Novikov (статус: Посетитель)
Вопрос отправлен: 15 ноября 2010, 18:36
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Roman Novikov!
по моему опыту, делать подобные ограничения - очень плохо. Пользователь все равно найдет способ вставить запрещенные символы. И часто он это сделает не специально, а совершенно случайно.
Мой опыт говорит, что лучше делать так:
- по мере ввода пользователем данных, делать их верификацию и подсказынвать ненавязчиво (например, справа от поля ввода показывать красный флажок или зеленый)
- делать мелкие исправления, которые логичны (например, если пользователь должен ввести число, то можно исключить пробелы, если дробное, то можно запятую и точку подменять на "правильный" символ (например, если это для Украины, России, то на запятую, а для США - на точку). Но нужно помнить, что в США абсолютно нормальна запись 3,000,000 - это три миллиона, а не просто три.
- выводить пользователю в подсказке как следует вводить данные.
- разрешать пользователю несколько форматов ввода
- не в коем случае на выводить на не правильно введенный символ кучу ShowMessage, которые говорят "ошибка ввода", но не рассказывают, что же не так.
И не нужно будет никаких масок.
Есть ещё один очень удобный способ вводить данные - это подобие инспектора объектов. В библиотеке JVCL есть парочка таких. Вся прелесть этих компонентов в том, что можно просто создать свой класс и все. Инспектор объектов сам подхватит все publised поля и создаст для них неплохой редактор. А для своих типов можно даже дописать редакторы.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 15 ноября 2010, 18:52
Оценка за ответ: 5
Комментарий к оценке: Отличный ответ!
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 16 ноября 2010, 12:28; участников в обсуждении: 1.
|
Roman Novikov (статус: Посетитель), 15 ноября 2010, 18:39 [#1]:
Либо нужен хороший совет как редактировать атрибуты объекта.
|
15 ноября 2010, 19:01: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А.
|
Roman Novikov (статус: Посетитель), 16 ноября 2010, 10:40 [#2]:
Вадим, нормально ли будет на OnValidate проверять введенное значение на сответствие типу и в случае ошибки выдавать ShowMessage с затиркой значения?
|
|
Roman Novikov (статус: Посетитель), 16 ноября 2010, 12:28 [#3]:
Возможно ли в TValueListEditor задать цвет нефиксированной ячейки?
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|