Eprst писал(а) 10. Декабря 2014 :: 06:33:Ну, как тебе сказать - делать врят ли кто-то будет. Никому не интересно, снеговик на марше!
вобщем придумал так:
1) Делаю отдельный класс "МойКласс", наследник от "ТабличноеПоле"
который реализует нужный мне дополнительный функционал в форме :
по сути как бы "расширение возможностей формы"
- те дополнительные процедуры, функции, переменные
- которые мне нужно было вставить в модуль "на лету"
(собственно: динамическое добавление функционала)
2) еще один класс - переменная в глобальнике "МойСинглтон"
который перехватывает события от разных форм
и (по принципу элемента управления АктивХ / ТабличноеПоле)
ПослеОткрытия() ===> внедряет на форму скрытый элемент "кнопка"
ПриЗакрытии() ===> удаляет с формы внедренный элемент
3) синглтон "МойСинглтон" знает какие события умеет обрабатывать "МойКласс"
и если в форме происходит сработка НУЖНЫХ событий
вызывает соотвествующие методы "внедренного" объекта:
Например:
// обработчик в синглтоне
процедура Событие_ПриНачалеВыбораЗначения(...) Экспорт
если _ЕстьАктивХнаФорме(КонтФормы) = 1 тогда
КонтФормы.МойВнедренныйОбъектНаФорме.РасширенныйДопМетод()
конецесли
конецпроцедуры
Что это дает:
- хочу добавить дополнительный функционал ко всем (или к многим) формам конфигурации
- раньше нужно было "копипастить" текст во все формы
- теперь : пишем класс и вешаем его на форму.
ПОЯСНЕНИЕ: моя конечная цель (чего ради):
мне нужна переменная(объект) в
области видимости конкретного контекста
Именно поэтому нельзя делать "общественную" глобальную переменну для "МойКласс".
Именно поэтому приходится извращаться - в каждую форму тыкать.....
(изначально именно ради этого хотел динамическую замену модулей)
Может я не оригинален: но по крайней мере должно работать.
Считаю задача "динамическая замента текста модуля формы" решена.
Пошел реализовывать.....