Страница 1 из 4
Формат ввода чисел
Добавлено: 28 Июль 2023, 10:11
Игорь Столяров
Привет всем !
Есть старый вопрос по форматированию числа в поле ввода.
Предположим, нужно ввести значения порядка: 123456789 без каких-либо разделителей.
Задаём маску поля @_N9 и получаем выделение пространства для отсутствующих цифр:
И вроде бы работать можно, но пользователи делают двойной щелчок мышкой на поле,
выбирается только пустой фрагмент, далее ошибки ввода и т.д.
Вроде бы этот вопрос решает маска поля @N9_ - но большие числа получаются с разделителем "123 456 789"

Для целых чисел все требования выполняются если закостылить маску числел как @s9.
Вопрос: Можно ли как-то подобрать маску без быделения незначащих разрядов и разделителей для дробных чисел ?
Спасибо !

Формат ввода чисел
Добавлено: 28 Июль 2023, 13:22
Ravenous
@N_9B не подойдёт?
Формат ввода чисел
Добавлено: 28 Июль 2023, 14:07
kreator
Ещё можно вот так вые-ться - @N_9_B.
Формат ввода чисел
Добавлено: 28 Июль 2023, 14:13
Игорь Столяров
kreator писал(а): 28 Июль 2023, 14:07@N_9_B.
Это первое, что приходит в голову всем у кого я спрашиваю.

К сожалению нет. Формат экстремально допустимый (как и например @S9b) -
но результат как на первом рисунке. Увы !

Формат ввода чисел
Добавлено: 28 Июль 2023, 15:15
finsoftrz
Можно попробовать отследить событие event:selected.
Код: Выделить всё
!===================================================================================
! Обработка позиционирования в цифровых полях
!
FsFix_C11.EventSelectNums PROCEDURE
CODE
if event()<>event:selected
return
end
SELF.Contr = field()
if SELF.Contr = 0
return
end
case SELF.Contr{prop:type}
of CREATE:entry
orof CREATE:spin
else
return
end
SELF.ContrFormat = SELF.Contr{prop:text}
case sub(SELF.ContrFormat,1,1)
of 'N'
orof 'n'
select(SELF.Contr,1)
select(SELF.Contr)
return
end
case sub(SELF.ContrFormat,1,2)
of '@N'
orof '@n'
select(SELF.Contr,1)
select(SELF.Contr)
end
Формат ввода чисел
Добавлено: 28 Июль 2023, 15:25
kreator
Игорь Столяров писал(а): 28 Июль 2023, 14:13
kreator писал(а): 28 Июль 2023, 14:07@N_9_B.
Это первое, что приходит в голову всем у кого я спрашиваю.

К сожалению нет. Формат экстремально допустимый (как и например @S9b) -
но результат как на первом рисунке. Увы !
Это я перебрал. Формат Ravenous работает как надо. Пробуйте. Пустышку не получается выбрать.
Формат ввода чисел
Добавлено: 28 Июль 2023, 15:35
Игорь Столяров
kreator писал(а): 28 Июль 2023, 15:25
Пустышку не получается выбрать
Ну этот формат тупо подавляет незначащий ноль и не более того.
Если в поле с форматом "@n_9b" введено число 123 то будет выбрано "_____123" как и с "@n_9"

Формат ввода чисел
Добавлено: 28 Июль 2023, 16:25
kreator
У меня не получается выбрать пустышку. Какой Кларион для начала? Превьюер и программа одинаковый результат даёт?
Формат ввода чисел
Добавлено: 28 Июль 2023, 16:45
Игорь Столяров
finsoftrz писал(а): 28 Июль 2023, 15:15
событие event:selected.
Это бы сработало, если делать Select(?,1,[длина поля]) ...
Но нужно либо прописывать для каждого поля, либо разбирать на лету формат ...
И это убирает проблему с выбором, но всё равно незначащие пробелы перед цифрой остаются.

Формат ввода чисел
Добавлено: 28 Июль 2023, 17:37
finsoftrz
Игорь Столяров писал(а): 28 Июль 2023, 16:45
finsoftrz писал(а): 28 Июль 2023, 15:15
событие event:selected.
Это бы сработало, если делать Select(?,1,[длина поля]) ...
Но нужно либо прописывать для каждого поля, либо разбирать на лету формат ...
И это убирает проблему с выбором, но всё равно незначащие пробелы перед цифрой остаются.
Делалось для числовые полей с включенным mask. Без него, возможно, select как написали, не проверял за ненадобностью. Метод класса вызывается сразу после accept и отрабатывает для всех полей, у которых числовой формат.
Формат ввода чисел
Добавлено: 28 Июль 2023, 17:42
finsoftrz
Должно решать проблему со второго скриншота.
Формат ввода чисел
Добавлено: 29 Июль 2023, 17:43
kreator
В топку! Пусть SV лечит. Собирались новые форматы добавить. Заодно не мешало бы и это починить.
Формат ввода чисел
Добавлено: 29 Июль 2023, 18:49
finsoftrz
kreator писал(а): 29 Июль 2023, 17:43
В топку! Пусть SV лечит. Собирались новые форматы добавить. Заодно не мешало бы и это починить.
Не поминайте всуе. А то опять свалимся в бессмысленные рассуждения, а есть ли мальчик.

Формат ввода чисел
Добавлено: 30 Июль 2023, 5:57
Игорь Столяров
Я так понимаю, что система ввода чисел заточена под американский форматы "123,456.78" или "123 456,78".
С ними проблем-то нет - всё работает чётко и правильно. Остальное для них - это непонятный и надуманный бред,
вроде второй раскладки на клавиатуре. Поэтому здесь никто не будет что-либо исправлять - они этого не видят.
Я помню сколько, в своё время, убил времени и сил, что бы объяснить Роберту Пареси, что в его iqXML есть глюк
с русской буквой "р". И то, он на меня смотрел с любопытством, как на бесплатный секс ежиков.

Формат ввода чисел
Добавлено: 30 Июль 2023, 14:41
kreator
Игорь Столяров писал(а): 30 Июль 2023, 5:57
Я так понимаю, что система ввода чисел заточена под американский форматы "123,456.78" или "123 456,78".
С каким форматом проблем нет? Без десятичных.