|
Программное создание Кнопок (Управляеммы формы) | ☑ | ||
---|---|---|---|---|
0
prof-net
07.11.17
✎
19:42
|
Добрый день. Есть такая непонятка:
|
|||
1
Филиал-msk
07.11.17
✎
19:42
|
Да неужели?
|
|||
2
zak555
07.11.17
✎
19:43
|
напиши код и укажи проблему
|
|||
3
prof-net
07.11.17
✎
19:44
|
программно создаю команды на форме, но сколько их будет - изначально не знаю. Хочу это дело обработать в цикле
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Команда = Команды.Добавить("Команда1"); Команда.Действие = "ВыполнитьДействиеКоманды1"; НовыйЭлемент = Элементы.Добавить("Команда1", Тип("КнопкаФормы"), Элементы.Группа3 ); НовыйЭлемент.Вид = ВидКнопкиФормы.ОбычнаяКнопка; НовыйЭлемент.ИмяКоманды = "Команда1"; Команда = Команды.Добавить("Команда2"); Команда.Действие = "ВыполнитьДействиеКоманды2"; НовыйЭлемент = Элементы.Добавить("Команда2", Тип("КнопкаФормы"), Элементы.Группа3 ); НовыйЭлемент.Вид = ВидКнопкиФормы.ОбычнаяКнопка; НовыйЭлемент.ИмяКоманды = "Команда2"; КонецПроцедуры &НаКлиенте Процедура ВыполнитьДействиеКоманды1() Сообщить("Команда 1"); КонецПроцедуры &НаКлиенте Процедура ВыполнитьДействиеКоманды2() Сообщить("Команда 2"); КонецПроцедуры Вопрос: Как программно создать обработчики событий для кнопок? |
|||
4
Филиал-msk
07.11.17
✎
19:44
|
(0) Там под твоим сообщением реклама крутится - это оно?
|
|||
5
prof-net
07.11.17
✎
19:46
|
Какая реклама?
|
|||
6
prof-net
07.11.17
✎
19:47
|
Случайно нажал отправить, не дописав до конца сообщение :(
|
|||
7
prof-net
07.11.17
✎
19:54
|
Т.е. допустим так:
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Счетчик = 0; Пока Счетчик < 20 Цикл Команда = Команды.Добавить("Команда" + Счетчик); Команда.Действие = "ВыполнитьДействиеКоманды" + Счетчик; НовыйЭлемент = Элементы.Добавить("Команда" + Счетчик, Тип("КнопкаФормы"), Элементы.Группа3 ); НовыйЭлемент.Вид = ВидКнопкиФормы.ОбычнаяКнопка; НовыйЭлемент.ИмяКоманды = "Команда"+ Счетчик; Счетчик = Счетчик +1; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ВыполнитьДействиеКоманды1() Сообщить("Команда 1"); КонецПроцедуры &НаКлиенте Процедура ВыполнитьДействиеКоманды2() Сообщить("Команда 2"); КонецПроцедуры У меня создается 20 кнопок, но только 2 из них выполняют действие... Причем переменная счетчик допустим мне неизвестна... Не писать же мне в коде 100 процедур для каждой, команды, которая может создаться, а может и нет Вопрос в том, как программно можно обработать обработчики событий для создаваемых кнопок |
|||
8
Филиал-msk
07.11.17
✎
19:59
|
(5) Вот и я думаю, зачем тебе Балчуг Вьюпорт...
(7) Зачем ты создаёшь 20 кнопок, из которых только две рабочие? Нет у кнопки обработчика, есть действие у команды. |
|||
9
Mankubus
07.11.17
✎
20:15
|
(0) создай один обработчик команды. У него есть параметр Команда.
Анализируй его и выполняй действие в зависимости от значения параметра |
|||
10
Филиал-msk
07.11.17
✎
20:39
|
(9) Да вы сговорились, нерусские? Нет у обработчика параметра. Есть у команды --действие-процедура. Есть у элемента формы - кнопки -- команда. Закопайте уже стюардессу.
|
|||
11
Маленький Мук
07.11.17
✎
20:56
|
Команда.Имя
|
|||
12
Byasha
07.11.17
✎
20:59
|
(10) При вызове процедуры обработчика команды у нее есть предопределенный параметр "Команда". Через это параметр передается команда которая и запускает обработчик.
А дальше Если Команда.Имя = "ТвояКоманда" Тогда Читать СП до просветления; Иначе Убится головой об стену; КонецЕсли |
|||
13
Byasha
07.11.17
✎
21:02
|
Вместо этого "Команда.Действие = "ВыполнитьДействиеКоманды" + Счетчик"
Напиши "Команда.Действие = "ВыполнитьДействиеКоманды" Задай обработчик &НаКлиенте Процедура ВыполнитьДействиеКоманды(Команда) Сообщить(Команда.Имя); КонецПроцедуры И все поймешь. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |