|
|
Програмное создание кнопок на управляемой форме |
☑ |
|
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 нельзя :(
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший