|
УФ: Программно сделать кнопку и привязать к ней функцию общего модуля? |
☑ |
0
RetardedToBoot
11.09.19
✎
20:26
|
Можно ли в УФ сделать программно кнопку и привязать к ней вызов из общего модуля?
Цель сделать динамическу коллекцию кнопок добавляемых на форму. Типа в разных рабочих стола дополнительная закладка, куда вставлять эту коллекцию при открытии формы. Если такое можно html вставками, то это не очень, т.к. ломает привычное представление пользователей, по крайней мере где я это делаю.
|
|
1
runoff_runoff
11.09.19
✎
20:38
|
нужно
1. создать команду
2. создать кнопку
3. создать тело процедуры-обработчика команды в модуле формы, в которой будет вызываться нужный метод общего модуля..
|
|
2
RetardedToBoot
11.09.19
✎
20:42
|
(1) Это то понятно, описаний в инете хватает. Загвоздка в "создать тело процедуры-обработчика команды в модуле формы". Без этого можно, что бы один раз ее описать в общем модуле и все?
|
|
3
RomanYS
11.09.19
✎
21:21
|
(2) общие (или глобальные?) команды
|
|
4
vcv
11.09.19
✎
21:32
|
(2) Нельзя. В типовых на БСП можно воспользоваться имеющейся процедурой вызова переопределяемых команд. Только свой кусок вставить в один глобальный модуль.
(3) Глобальную команду нельзя указать для кнопки программно. По крайней мере в распространённых в народе релизах 8.3
|
|
5
hhhh
11.09.19
✎
22:25
|
(4) ну нельзя, а всё равно этими командами реализовано всё, что он в (0) написал.
|
|
6
Сияющий в темноте
11.09.19
✎
22:55
|
в модуль формы придется вставить одну процедуру для всех кнопок,которая по идентификатору кнопки понимает,что нужно вызвать,ну или из нее просто вызвать глобальную,передав идентификатор кнопки.
далее,просто.
|
|
7
RetardedToBoot
11.09.19
✎
23:56
|
(6) я примерно так и обдумываю, но вдруг есть лучше вариант среди каких-нибудь новых фич платформы или плохо изученных старых.
|
|
8
mmmarat
12.09.19
✎
08:36
|
(0) Подобный функционал есть в БСП в ПодключаемыеКомандыПереопределяемый
В ПриОпределенииКомандПодключенныхКОбъекту() определяете список команд, в ПриОпределенииВидовПодключаемыхКоманд() определяете свой раздел при необходимости. Обработчики располагаются в общих клиентских модулях, без изменения непосредственно форм. Делал подобное на документах и справочниках, для своих обработок рабочего стола придется прописать интерфейс подключаемых команд.
|
|
9
Belomor
12.09.19
✎
09:13
|
|
|
10
ironicman
12.09.19
✎
09:40
|
ДобавитьОбработчик <Событие>, <ОбработчикСобытия>
не прокатит?
|
|
11
RetardedToBoot
13.09.19
✎
01:50
|
(10) при использовании ДобавитьОбработчик не определено что будет событием, по крайней мере Команда1.Действие не прокатывает для команды формы Команда1.
===
В общем по результатам исследований...
На форме можно сделать кнопку указав глобальную команду.
В модуле этой глобальной команды в ее обработчике, в второй параметр
система передает форму, откуда был вызван этот обработчик.
И у этой формы текущим элементом в момент выполнения сидит та
самая нажатая кнопка, в таком расположении:
ПараметрыВыполненияКоманды.Источник.ТекущийЭлемент.Имя = "ОбщаяКомандаОбщаяКоманда1";
Впрочем глобальные команды можно понаделать на разные типы кнопк индивидуальные, это же не в каждую форму их запихивать.
Все это сладив вроде как можно запустить в таком виде, сам код сделаю и испробую позже.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший