| 
| 
 | Вопрос # 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 задать цвет нефиксированной ячейки? |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |