Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) класс "ПанельВкладок" (разбираемся с перехватом) (число прочтений - 6052 )
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
класс "ПанельВкладок" (разбираемся с перехватом)
28. Февраля 2018 :: 10:15
Печать  
Выкладываю "скелет" класса "ПанельВкладок" по образу Firefox, на примере которого, хочу обратиться к специалистам по поводу грамотной обработки событий через класс "Перехватчик".
Заранее благодарю за помощь.

Вызов:

     ПанельВкладок=СоздатьОбъект("ПанельВкладок");
     ПанельВкладок.УстановитьАтрибут("Панель",5,"bx1");
     ПанельВкладок.ЦветПанели(14467239,15389113);
     ПанельВкладок.НоваяВкладка();

Соответственно: formex и ActiveX от vip SemenPic.ocx в архиве





https://drive.google.com/file/d/1qGJJQlEvCYpIO0d0d_2s2uQn-XefRtKy/view?usp=shari...
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #1 - 01. Марта 2018 :: 12:15
Печать  
ну дык, всё просто

1. к обработчикам событий в классе приделай префикс "Событие_"

2. в форме, там же где и раньше объект создавался, пиши
Панель = СоздатьОбъект("ПанельВкладок");
Перехватчик = СоздатьОбъект("Перехватчик");
Перехватчик.ПерехватитьСобытияГК(Контекст, Панель);

  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #2 - 01. Марта 2018 :: 13:22
Печать  
ADirks писал(а) 01. Марта 2018 :: 12:15:
ну дык, всё просто

1. к обработчикам событий в классе приделай префикс "Событие_"

2. в форме, там же где и раньше объект создавался, пиши
Панель = СоздатьОбъект("ПанельВкладок");
Перехватчик = СоздатьОбъект("Перехватчик");
Перехватчик.ПерехватитьСобытияГК(Контекст, Панель);



1. к обработчикам событий в классе - Экспорт оставлять?
2. В какой форме вызывающей или в КОП

И так и не так - не работает. По-видимому не так все просто.

Если можно поподробней. Спасибо
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #3 - 01. Марта 2018 :: 14:09
Печать  
А если на форме десяток подобных объектов?

И вообще вопрос о том, чтобы в вызывающей форме никаких дополнительных классов вызовов не было.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок"
Ответ #4 - 04. Марта 2018 :: 20:08
Печать  
Заработало!!!

В классе

procedure УстановитьАтрибут(Имя,МаксВкладок=0,Рамка="") export
     ...
     ...
     УправлениеНастройками = СоздатьОбъект("УправлениеНастройками");
     УправлениеНастройками.Включить("ПерехватитьСобытияГК");
     
     Перехватчик = СоздатьОбъект("Перехватчик"); 
     Перехватчик.ПерехватитьСобытияГК(КонтФормы, Контекст);

endprocedure // УстановитьАтрибут()

Остался вопрос, что делать с "УправлениеНастройками" и "Перехватчик"-ом после закрытия формы?
« Последняя редакция: 04. Марта 2018 :: 23:45 - recop »  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #5 - 04. Марта 2018 :: 23:49
Печать  
В шапке выложена рабочая версия класса ПанельВкладок. Предложения и пожелания пишите здесь. Проверено, используется.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #6 - 17. Марта 2018 :: 21:56
Печать  
Обновлен
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #7 - 19. Марта 2018 :: 03:52
Печать  
Включать перехват каждый раз не надо. Т.е. код
УправлениеНастройками = СоздатьОбъект("УправлениеНастройками");
УправлениеНастройками.Включить("ПерехватитьСобытияГК");
надо выполнить один раз при старте системы.

С перехватчиком делать ничего не надо. Сам изничтожится.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #8 - 19. Марта 2018 :: 05:52
Печать  
Спасибо, добрый человек. Перехватчик пока не подводил. А вот ActiveX (показала практика) действительно необходимо уничтожать.

А по включению настроек всё же вопрос. В описании сказано, что состояние настройки записывается в реестр:

3. При изменении настройки данные об этом сохраняются в реестре Windows. [HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\%DB%\V7\%USERNAME%\1C++ options]
При следующей загрузке 1С++ все настройки будут автоматически загружены.


Поэтому я и решил, что лишняя перезапись ничего не изменит и диск не износится, а помнить об этом уже будет не нужно. Я не прав? Хотелось бы ознакомиться с Вашим мнением. Спасибо.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #9 - 19. Марта 2018 :: 09:09
Печать  
Обновлено.

https://drive.google.com/uc?export=download&confirm=no_antivirus&id=1_vUVc3HDjyG...

модератору просьба заменить ссылку в шапке
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #10 - 19. Марта 2018 :: 10:08
Печать  
recop писал(а) 19. Марта 2018 :: 05:52:
Поэтому я и решил, что лишняя перезапись ничего не изменит и диск не износится, а помнить об этом уже будет не нужно. Я не прав? Хотелось бы ознакомиться с Вашим мнением. Спасибо.


В общем то конечно, хуже от этого никому не станет.
  
Наверх
 
IP записан
 
vladimirmir2012
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 426
Зарегистрирован: 18. Мая 2011
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #11 - 19. Марта 2018 :: 10:44
Печать  

У меня имеется обработка, которая используется для регистрации классов - defcls.

Код (C++)
Выбрать все
//# класс КлассИнициализацияОтладки = КлассИнициализацияОтладки@MD
//# {};
//# класс КлассПерехватСобытий = КлассПерехватСобытий@MD
//# {};
//# класс ПанельВкладок =  ПанельВкладок@MD
//# {};
 



ПанельВкладок.ert добавил в Обработки.

Использовал пример для создания вкладки из документации.
При отработке теста имею:

ПанельВкладок::Деструктор() : Значение не представляет агрегатный объект
actxBasis.Уничтожить();
{ПанельВкладок@MD(194) }

ПанельВкладок::Деструктор() : Значение не представляет агрегатный объект
actxBasis.Уничтожить();
{ПанельВкладок@MD(194) }
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #12 - 19. Марта 2018 :: 10:53
Печать  
А если регистрировать класс обычным способом с помощью файла нормально?
  
Наверх
 
IP записан
 
vladimirmir2012
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 426
Зарегистрирован: 18. Мая 2011
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #13 - 19. Марта 2018 :: 11:09
Печать  
У меня на форме не было поля с именем "Текст".
Добавил, вроде ошибок не стало.
Жму на "+", появляется пустая вкладка.
  
Наверх
 
IP записан
 
vladimirmir2012
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 426
Зарегистрирован: 18. Мая 2011
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #14 - 19. Марта 2018 :: 11:41
Печать  
На форме не было поля с именем "Панель" /не кнопка, а текстовое/ и рамки.
У меня все по другому реализовано /GUI. Но это совершенно иная песня/.
В целом - cпасибо.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #15 - 19. Марта 2018 :: 11:53
Печать  
Именно так "в недрах" и реализован весь интерфейс в OS.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #16 - 20. Марта 2018 :: 20:25
Печать  
Вопрос к знатокам, надеюсь на скорые разъяснение или ссылку для получения информации:

Как скрыть глобальные переменные "для внутреннего пользования" модуля КОП в отладчике не предназначенные на "экспорт"?
« Последняя редакция: 20. Марта 2018 :: 21:26 - recop »  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #17 - 21. Марта 2018 :: 06:13
Печать  
Никак
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #18 - 21. Марта 2018 :: 18:24
Печать  
Похоже, придется объединять в список, чтоб не путались с нужными. Примитив.
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #19 - 22. Марта 2018 :: 06:58
Печать  
Тогда уж лучше в структуру. Так красивше будет Улыбка  да и быстрее немножко
  
Наверх
 
IP записан
 
PitKZL
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #20 - 22. Марта 2018 :: 13:42
Печать  
А живой примерчик можно, а то валятся ошибки

Процедура ПослеОткрытия()

Вкладки=СоздатьОбъект("ПанельВкладок");
Вкладки.УстановитьАтрибут("Панель",5,"bx1");
Вкладки.ЦветПанели(14467239,15389113);

TzTabs=СоздатьОбъект("ТаблицаЗначений");
TzTabs.НоваяКолонка("Наименование","Строка");
TzTabs.НоваяКолонка("Слои","Строка");
TzTabs.НоваяСтрока();
TzTabs.Наименование = "Все";
TzTabs.Слои = "Основной,Вкладка1,Подвал";
Вкладки.ТаблицаЗначений=TzTabs.Слои;
Вкладки.ТекущаяВкладка=1;
Вкладки.ОбновитьВкладки();
Вкладки.УстановитьТаблицу(TzTabs);
КонецПроцедуры

ПанельВкладок:Очень довольныйrawPanel() : Значение не представляет агрегатный объект
if ТаблицаЗначений.КоличествоСтрок()=0 then
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #21 - 23. Марта 2018 :: 21:05
Печать  
Процедура ПослеОткрытия()

Вкладки=СоздатьОбъект("ПанельВкладок");
Вкладки.УстановитьАтрибут("Панель",5,"bx1");
Вкладки.ЦветПанели(14467239,15389113);

TzTabs=СоздатьОбъект("ТаблицаЗначений");
TzTabs.НоваяКолонка("Наименование","Строка");
TzTabs.НоваяКолонка("Слои","Строка");
TzTabs.НоваяСтрока();
TzTabs.Наименование = "Все";
TzTabs.Слои = "Основной,Вкладка1,Подвал";

Вкладки.УстановитьТаблицу(TzTabs);

КонецПроцедуры

1. Создать таблицу.
2. УстановитьТаблицу.
Остальное лишнее.

Слои переключать в предопределенной процедуре
Процедура ВкладкиПриВыбореВкладки(TzTabs,nomTabs)
   Форма.ИспользоватьСлой(TzTabs.GetValue(nomTabs,"Слои",2) и тд.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #22 - 03. Апреля 2018 :: 20:36
Печать  
ADirks писал(а) 22. Марта 2018 :: 06:58:
Тогда уж лучше в структуру. Так красивше будет Улыбка  да и быстрее немножко


... можно на этом месте по подробнее или ссылку на примерчик?
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #23 - 04. Апреля 2018 :: 04:50
Печать  
Примерно так
Код
Выбрать все
стВсякиеПараметры = СоздатьОбъект("Структура");
стВсякиеПараметры.Вставить("п1", 11);
стВсякиеПараметры.Вставить("п2", "22");

и обращение к полям уже традиционно, как
стВсякиеПараметры.п1
 

  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #24 - 04. Апреля 2018 :: 18:17
Печать  
Спасибо, выберу время буду пробовать.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #25 - 10. Декабря 2018 :: 13:03
Печать  
Встал следующий вопрос с перехватчиком реализуемым текущим способом:
При наличии двух объектов на форме события перехватываются лишь одним созданным последним объектом.


В чем проблема???? Озадачен
« Последняя редакция: 10. Декабря 2018 :: 14:46 - recop »  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1532
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #26 - 13. Декабря 2018 :: 09:04
Печать  
recop писал(а) 10. Декабря 2018 :: 13:03:
Встал следующий вопрос с перехватчиком реализуемым текущим способом:
При наличии двух объектов на форме события перехватываются лишь одним созданным последним объектом.


В чем проблема???? Озадачен


Подозреваю, что надо слать дальше перехваченное событие. Типа такого:

Код
Выбрать все
Процедура ПриИзмененииРазмераОкна(ТипСобытия,ШФормы,ВФормы) Экспорт
	Перехватчик.ВыполнитьСобытиеГК(ПерехватчикПредыдущий,ПерехваченныйКонтекст, "ПриИзмененииРазмераОкна",ТипСобытия,ШФормы,ВФормы);
КонецПроцедуры // ПриИзмененииРазмераОкна
 

  

FormEx developer
Наверх
www  
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #27 - 15. Декабря 2018 :: 06:21
Печать  
АЛьФ писал(а) 13. Декабря 2018 :: 09:04:
[quote author=2D3A3C302F5F0 link=1519812923/25#25 date=1544447004]
Подозреваю, что надо слать дальше перехваченное событие. Типа такого:

Код
Выбрать все
Процедура ПриИзмененииРазмераОкна(ТипСобытия,ШФормы,ВФормы) Экспорт
	Перехватчик.ВыполнитьСобытиеГК(ПерехватчикПредыдущий,ПерехваченныйКонтекст, "ПриИзмененииРазмераОкна",ТипСобытия,ШФормы,ВФормы);
КонецПроцедуры // ПриИзмененииРазмераОкна
 



Только не очень понятно что есть на данном примере "ПерехватчикПредыдущий"?
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1532
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #28 - 25. Декабря 2018 :: 14:01
Печать  
recop писал(а) 15. Декабря 2018 :: 06:21:
Только не очень понятно что есть на данном примере "ПерехватчикПредыдущий"?


Код
Выбрать все
Процедура Конструктор()
	Перехватчик = СоздатьОбъект("Перехватчик");
	ПерехваченныйКонтекст = Сам(Контекст).ПолучитьКонтекстОкружения();
	ПерехватчикПредыдущий = Перехватчик.ПолучитьПерехватчикСобытийГК(ПерехваченныйКонтекст);
	Перехватчик.ПерехватитьСобытияГК(ПерехваченныйКонтекст, Сам(Контекст));
 

  

FormEx developer
Наверх
www  
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #29 - 28. Декабря 2018 :: 05:10
Печать  
АЛьФ писал(а) 25. Декабря 2018 :: 14:01:
recop писал(а) 15. Декабря 2018 :: 06:21:
Только не очень понятно что есть на данном примере "ПерехватчикПредыдущий"?


Код
Выбрать все
Процедура Конструктор()
	Перехватчик = СоздатьОбъект("Перехватчик");
	ПерехваченныйКонтекст = Сам(Контекст).ПолучитьКонтекстОкружения();
	ПерехватчикПредыдущий = Перехватчик.ПолучитьПерехватчикСобытийГК(ПерехваченныйКонтекст);
	Перехватчик.ПерехватитьСобытияГК(ПерехваченныйКонтекст, Сам(Контекст));
 



Спасибо дорогой, как всегда по твоим стопам...
Мне бы ещё понять правильность последующего вызова оригинального события:

Код
Выбрать все
Процедура Событие_ПриДвиженииМыши(Сост,mX,mY,ФСО)
	Перехватчик.ВыполнитьСобытиеГК(ПерехватчикПредыдущий,ПерехваченныйКонтекст, "ПриДвиженииМыши",Сост,mX,mY,ФСО);
	Перехватчик.ВыполнитьОригинальноеСобытиеГК (ПерехваченныйКонтекст,"ПриДвиженииМыши",Сост,mX,mY,ФСО);
 



Не состоится ли несколько лишних вызовов оригинального события при наличии на форме нескольких одинаковых объектов? Если да. то как это можно избежать? Спасибо.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #30 - 07. Января 2019 :: 21:32
Печать  
И тишина-а-а... Не сомневаюсь, что вопрос с множественным перехватом давно решен, но поделиться решением душит "жаба"... Жаль, а то есть много оригинальных задумок, которые я собирался здесь выложить...
  
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 570
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #31 - 08. Января 2019 :: 09:07
Печать  
Сделано то что-то сделано, но видение этого механизма у всех разное, и требования к нему тоже индивидуальные. Универсального механизма ни у кого не будет.

http://www.1cpp.ru/forum/YaBB.pl?num=1218783847
http://www.1cpp.ru/forum/YaBB.pl?num=1278756052
http://www.1cpp.ru/forum/YaBB.pl?num=1290676125/71#71
https://infostart.ru/public/71084/

Или ты хочешь чтобы подписчики событий сами по себе подключались?
Ну... в принципе можно... только вот последовательность их выполнения будет не определенной, а вот этого совсем не надо!

Или требуется динамическое подключение/отключение?
Так допилить структуру списка подписчиков и можно будет динамически добавлять/удалять подписчика Перед,Вместо,После какого то определенного.

  
Наверх
www  
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #32 - 05. Марта 2019 :: 20:46
Печать  
Djelf писал(а) 08. Января 2019 :: 09:07:
... только вот последовательность их выполнения будет не определенной, а вот этого совсем не надо!...


Что-то при простом подключении с предыдущем перехватом последовательность оказалась вполне предсказуема по принципу обычного стека (последним пришел первым ушел).
  
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 570
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #33 - 06. Марта 2019 :: 15:33
Печать  
А теперь попробуй что-то удалить в середине стека!
Даже интересно что будет Подмигивание
  
Наверх
www  
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #34 - 06. Марта 2019 :: 17:46
Печать  
Djelf писал(а) 06. Марта 2019 :: 15:33:
А теперь попробуй что-то удалить в середине стека!
Даже интересно что будет Подмигивание


Да пока нет такой необходимости. На попап класс не удаляется. Просто форма открывается/закрывается объект Перехватчик, АктивИкс создаются/уничтожаются.
Даже трудно представить зачем можно на открытой форме уничтожать объекты. Просто тело отвязать достаточно. Все же, для начала хочется услышать обоснование сей потребности.
  
Наверх
 
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 235
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: класс "ПанельВкладок" (разбираемся с перехватом)
Ответ #35 - 11. Марта 2019 :: 21:18
Печать  
Очень интересная непроработка Перехватчика. Если вызвать модальную форму из любой формы использующей Перехватчик, то Перехват на ней уже не работает. Кто-нибудь, кроме констатации факта, пытался более менее серьезно разобраться с причинами происходящего? Может есть обходные маневры? С плавающей формой не получилось, т.к. она не умеет закрываться (остается в памяти). Убедился при попытке вызвать предопределённую процедуру ПослеЗакрытия(), которая срабатывала с ошибками и только при завершении работы системы. Кстати, ПриЗакрытии() отрабатывает нормально.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать