Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УФ Растяжение поля ввода по вертикали по содержимому

УФ Растяжение поля ввода по вертикали по содержимому
Я
   xavchik
 
28.07.19 - 21:21
Всем привет. На УФ есть поле ввода. Значение в него устанавливается пограммно через реквизит формы. Надо сделать, чтобы в поле был всегда видет весь текст, т.е. поле растягивалось по высоте. Перепробовал уже много чего. Многострочный режим = Да не помогает. Вместо растяжения просто повляется прокрутка, а высота все равно в одну строку.
 
 
   vde69
 
1 - 28.07.19 - 21:30
Элементы.ИмяПоля.Высота = НужнаяВысота
   xavchik
 
2 - 28.07.19 - 21:32
(1) А как мне эту высоту вычислить-то? Она можнеть быть разная в каждом отдельном случае.
   vde69
 
3 - 28.07.19 - 21:32
(2) это другой вопрос :)
   PiotrLoginov
 
4 - 28.07.19 - 22:51
а если интерактивно вводить, высота увеличивается сама?
тогда может помогут методы, имитирующие интерактивный ввод?
   Тихий омут
 
5 - 29.07.19 - 07:53
Подниму тему, вопрос интересный.
Положим, шрифт для поля ввода задан моноширинный, ширина поля фиксирована, перенос по целым словам, артефакты типа табуляции считаем недопустимыми - т.е. по содержимому можно определить высоту в строках плюс-минус лапоть.
Как сделать автоматическое управление высотой поля ввода при вводе очередного символа? Использование обработчиков событий ИзменениеТекстаРедактирования и ОкончаниеВводаТекста приводит к довольно неожиданным результатам. Танцы вокруг однократного обработчика ожидания, запускаемого из этих обработчиков, тоже успеха не имеют.
(4) Что это - "имитация интерактивного ввода"?
   xavchik
 
6 - 29.07.19 - 12:31
(5) На самом деле, у меня задача даже проще. Мне просто при подготовке формы надо показать эти поля, заполнить текстом и все. Потом они редактировать не будут пользователей и обрабатывать события изменения даже не надо.

Также рассмотрю другие элементы управления, которые позволят выделить текст и скопировать в буфер.
   xavchik
 
7 - 29.07.19 - 12:32
(4) В том-то и дело, что пытался найти правильную настройку параметром печатанием в поле вручную. Поле в зависимости от содержимого не растягивается. Если задашь высоту, например 3, то три строки показывает - все остальное прячет под прокрутку
   xavchik
 
8 - 29.07.19 - 12:34
(5) "по содержимому можно определить высоту в строках плюс-минус лапоть" вот как раз лапоть этот может вызвать проблемы. В полях содержаться сообщения. Если, например, отрежет что-то важно в конце и пользователь не увиди, то это очень плохо
   Масянька
 
9 - 29.07.19 - 12:41
(5) Интересный вопрос решается интересно.
Я делала так:
1. вычислить высоту одной строки (как удобно - в см, пикселях). Для стандартного (определенного) шрифта. Считаешь, сколько строк (таких) помещается на листе.
2. вычислить ширину строки (столбца) в символах. Тут - как фишка ляжет... Я делала примерно - поровну широких символов (Ш) и узких. Мне было вилы заморачиваться по ширине символа (например, широкий символ - это 1,5 узких).
3. делишь выводимую строку по ширине строки (столбца). Тут опять мне было вилы (вернее, в силу специфики) заморачиваться по переносу. Я тупо резала (посередине слова).
4. считаешь, сколько строк получилось и выводишь соответственно (на одном листе, перенос).
В общем, интересно.
   Масянька
 
10 - 29.07.19 - 12:43
+ (9) Очень хочется глянуть алгоритм мелкомягких в ворде.
   xavchik
 
11 - 29.07.19 - 20:50
(10) На самом деле, все это уже реализовано в 1С (я имею в виду перенос слов). Если сделать поле высотой, например, 3, то перенос отлично работает. И пре переходе на 4-ю строку это событие отлично отлавливается и добавляется прокрутка. Вопрос лишь в том, как сделать, чтобы не прокрутка добавлялась, а просто увеличивалась высота  поля, вместо того, чтобы рассчитывать его высоту самостоятельно.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.