Pull to refresh
67
0
Николай Петроченко @nik_vr

User

Send message
Я с ходу не смог вспомнить ни одного приложения, где бы мне приходилось вручную вводить разделители разрядов. Но в целом, согласен — такой случай мой алгоритм не обработает. Можно попытаться его адаптировать, но, как минимум, нужно проверять системные настройки (разделители) и уже от них плясать.
До сих пор не было жалоб от пользователей на такое поведение. Хотя, как вариант, стоит «переставлять» разделитель в случае его повторного ввода.
С отрицательными числами вообще не вижу проблем — минимальные изменения алгоритма фильтрации позволят вводить ведущий символ "-".

Что касается ввода в экспоненциальном виде — это тоже не проблема, но в моём случае такой задачи не было, требовался ввод финансовых значений.
Вот именно эту проблему решает предложенный алгоритм, позволяя вводить числа без нумпада, не сбиваясь на переключение раскладки и нажатие Shift для ввода разделителя.
Попробуйте в реальной задаче использовать такой фильтр — и убедитесь, насколько быстро к нему привыкаешь.
Когда попеременно ведётся ввод текста и числовых данных большинство пользователей предпочитает не прыгать рукой к нумпаду. Но мы же не можем принудить всех пользователей использовать строго нумпад, поэтому проблема ввода разделителя с основного поля актуальна.
На самом деле это очень спорный вопрос. Я проверял на реальных пользователях оба варианта (информирование о неправильном вводе и фильтрацию). Конкретно в случае с вводом дробных значений фильтрация более лояльно воспринимается пользователями. Фактический предложенный алгоритм — это не просто фильтрация, а коррекция ошибок ввода.
Не думаю, что тут будут проблемы — разделитесь групп разрядов отрисовывается на уровне API операционной системы и от вводимых символов мало зависит. Конкретно мой код для Lazarus (специально сейчас проверил) вообще не реагирует на смену системного разделителя — поле ввода имеет текстовый формат.

В целом же, мой алгоритм ориентирован на типичные для русскоязычных пользователей случаи. В случае с использованием раскладок, отличных от RUS/ENG, алгоритм нужно проверять и, вероятно, немного изменять.
12 ...
23

Information

Rating
Does not participate
Location
Слободской, Кировская обл., Россия
Date of birth
Registered
Activity