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