0
DrLekter
27.02.20
✎
17:01
|
Делаю подбор кнопками в управляемой форме. Для этого создаю программно кнопки, но встаёт вопрос, как их красиво разместить. Сейчас я создаю горизонтальные группы, в которые размещаю заранее заданное количество кнопок:
НКнопкиВПодгруппе = КоличествоКнопокВПодгруппе;
Пока ВыборкаНоменклатуры.Следующий() Цикл
Если НКнопкиВПодгруппе = КоличествоКнопокВПодгруппе Тогда
НоваяПодгруппа = Элементы.Добавить("Подгруппа" + Формат(НПодгруппы, "ЧН=0; ЧГ=0"), Тип("ГруппаФормы"), Элементы.Найти("ГруппаПодбора" + Строка(НГруппы)));
НоваяПодгруппа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
НоваяПодгруппа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно;
НоваяПодгруппа.РастягиватьПоГоризонтали = Истина;
НПодгруппы = НПодгруппы + 1;
НКнопкиВПодгруппе = 0;
КонецЕсли;
НоваяКнопка = Элементы.Добавить("Р_КнопкаДляПодбора" + Формат(НКнопки, "ЧН=0; ЧГ=0"), Тип("КнопкаФормы"), Элементы.Найти(НоваяПодгруппа.Имя));
НоваяКнопка.ИмяКоманды = "Р_КнопкаДляПодбораНажатие";
НоваяКнопка.Заголовок = ВыборкаНоменклатуры.Представление;
НоваяКнопка.РастягиватьПоГоризонтали = Истина;
НоваяСтрока = ЭтаФорма.ТаблицаДляПодбора.Добавить();
НоваяСтрока.Номенклатура = ВыборкаНоменклатуры.Ссылка;
НоваяСтрока.Представление = ВыборкаНоменклатуры.Представление;
НКнопки = НКнопки + 1;
НКнопкиВПодгруппе = НКнопкиВПодгруппе + 1;
КонецЦикла;
Проблема в том, что ширина кнопок зависит от длины заголовков плюс экраны могут быть разные. Если сделать КоличествоКнопокВПодгруппе слишком большим, то или они не поместятся в первом же ряду и все группы переориентируются на вертикальное расположение, либо это случится дальше и тогда часть кнопок уйдёт за правый край и появится полоса прокрутки. Если сделать слишком маленьким, то получатся чересчур широкие кнопки, а по высоте вся конструкция тоже может уйти за нижний край.
Есть ли вариант размещения кнопок в группе или каком-то другом элементе, чтобы они размещались там как буквы в блокноте - закончилась строка и поехал на следующую?
В обычных формах всё просто было - посчитал размеры и рисуй как хочешь, а тут некрасиво получается.
|
|