Имя: Пароль:
1C
1С v8
Програмное создание кнопок на управляемой форме
0 Numen
 
22.02.12
10:13
Как создать програмно допустим поле 10х10 кнопок?
Это же замучаешься 100 кнопок создавать. И даже создав ручками копированием как потом если понадобится у всех имена поменять?

Или подскажите элемент управление который можно приспособить под поле кнопок NxM
1 Kerk
 
22.02.12
10:30
Морской бой?
2 Numen
 
22.02.12
10:30
второй раз уже создаю тему и молчок (
3 Numen
 
22.02.12
10:31
пусть будет морской бой)
4 Asmody
 
22.02.12
10:32
форма какая?
5 Numen
 
22.02.12
10:32
управляемая форма 8.2
6 Numen
 
22.02.12
10:32
обычная форма обработки допустим
7 Asmody
 
22.02.12
10:38
(5) у коллекции Элементы есть метод Добавить()
в твоем случае надо добавить группу с вертикальной группировкой и 10 групп с горизонтальной группировкой, а в каждую группу по 10 кнопок. Каждой кнопке назначить команду
8 Numen
 
22.02.12
11:23
а если я не знаю столько групп у меня будет? создавать их сразу 100 штук и скрывать не используемые?
9 Escander
 
22.02.12
11:28
(8)не, визуализировать только те, которые нужны
10 Asmody
 
22.02.12
11:28
(8) программно создавай сколько надо
11 Asmody
 
22.02.12
11:30
дарю:

&НаСервере
Процедура СоздатьПолеКнопок()
   ГруппаКнопок = Элементы.ГруппаКнопок;
   Для ии = 0 по 9 Цикл
       ИмяГруппы = "ГруппаКнопок"+ии;
       НоваяГруппа = Элементы.Добавить(ИмяГруппы, Тип("ГруппаФормы"), ГруппаКнопок);
       НоваяГруппа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
       НоваяГруппа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная;
       НоваяГруппа.ОтображатьЗаголовок = Ложь;
       
       Для йй = 0 по 9 Цикл
           ИмяКнопки = "Кнопка"+(ии*10+йй);
           НоваяКнопка = Элементы.Добавить(ИмяКнопки, Тип("КнопкаФормы"), НоваяГруппа);
           НоваяКнопка.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
           НоваяКнопка.Заголовок = Прав("0"+(ии*10+йй),2);
           НоваяКнопка.ИмяКоманды = "КомандаДляКнопок";
       КонецЦикла;
   КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура СоздатьКнопки(Команда)
   СоздатьПолеКнопок();
КонецПроцедуры

&НаКлиенте
Процедура КомандаДляКнопок(Команда)
   Кнопка = ЭтаФорма.ТекущийЭлемент;
   Сообщение = Новый СообщениеПользователю;
   Сообщение.Текст = "Нажата "+Кнопка.Имя;
   Сообщение.Сообщить();
КонецПроцедуры
12 Asmody
 
22.02.12
11:35
13 Numen
 
22.02.12
13:25
Благодарствую!
Осталось понять почему можно использовать 10й шрифт в поле ввода при выстоте поля ввода 1, и 20й шрифт при высоте поля 2

А вот захочешь 16 шрифт и получишь или обрезание шрифта или пустое место под ним, потому как задать высоту поля 1,5 нельзя :(