Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Перехват закрытия другой формы (число прочтений - 2473 )
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Перехват закрытия другой формы
21. Мая 2009 :: 12:16
Печать  
Присоединяю форму поиска к форме списка справочника (тут кстати, кажется, глюк - РФорма.ПрисоединитьФорму ( 2, "Отчет.ПоискСправочник#", РФорма ) присоединяет форму слева, а не справа, как говорит документация).

Если закрываю форму списка справочника - форма поиска автоматически отсоединяется и не закрывается.

Решение: в предопределенном событии ПриЗакрытии формы списка закрывать присоединенную форму. Но хочется сделать универсальное решение без изменения кода модуля формы списка.

Значит, надо перехватить событие ПриЗакрытии формы списка в присоединенной форме.
Для этого обязательно должен быть КОП к-й будет этим делом заниматься. Делать КОП специально для этого перехвата не хочется. Остается два варианта:
1. Сделать КОП к-й будет перехватывать "по просьбе" какого-либо контеста предопределенные события другого контекста, вызывая при перехвате указанную процедуру запрашивающего контекста. Здесь сложность - сделать такой КОП.
2. Каким-то образом в запрашивающем контексте динамически создать КОП из текущего контекста (если эта фраза имеет смысл).

Все это к тому, что хочется все решить задачу одной строчкой типа _Перехватчик.ПодписатьсяНаСобытие(КонтекстСобытия, ИмяСобытия, КонтекстПриема, ИмяСобытияПриема). Как мне этого добиться?
Либо я усложняю все, и есть простое решение. Либо?
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Перехват закрытия другой формы
Ответ #1 - 21. Мая 2009 :: 13:20
Печать  
Либо  по совету АЛьФа не использовать писоединяемую форму, т.к. она работает не совсем хорошо.
Обсуждалось неоднократно.
  
Наверх
ICQ  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Перехват закрытия другой формы
Ответ #2 - 21. Мая 2009 :: 13:30
Печать  
ОК. А чисто теоретически:
Цитата:
_Перехватчик.ПодписатьсяНаСобытие(КонтекстСобытия, ИмяСобытия, КонтекстПриема, ИмяСобытияПриема)
?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Перехват закрытия другой формы
Ответ #3 - 22. Мая 2009 :: 08:57
Печать  
Ну и напиши свой класс или метод, в котором и реализуешь нужное поведение.
Все вполне решаемо.

ЗЫ например, юзай глоб. перехват СобытиеГМ_СозданиеКонтекста и в нем устанавливай нужный перехват на нужный контекст.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Перехват закрытия другой формы
Ответ #4 - 22. Мая 2009 :: 11:00
Печать  
Ясно.
Просто я думал, что все уже придумано для меня. Спасибо за ответы.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать