Страница 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".
 
С каким форматом проблем нет? Без десятичных.