Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Модальное окно теряет события клавиатуры при вызове из мышиных событий (число прочтений - 2760 )
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Модальное окно теряет события клавиатуры при вызове из мышиных событий
14. Февраля 2014 :: 14:31
Печать  
Делаю вызов обработки в модальном режиме из события ПриНажатииПравойКнопки (или Отжатии).

Код
Выбрать все
Процедура ПриОтжатииПравойКнопки(Сост,_X,_Y, _ФСО)
	Перем ПутьКФайлу,ИмяФайла;
	РасположениеФайла(ПутьКФайлу, ИмяФайла);
	_ФСО=1; ОткрытьФормуМодально("Отчет",,ПутьКФайлу+"Обработка2.ert");
КонецПроцедуры 



После этого в модальном окне перестают перехватываться события клавиатуры.

Если вызов модального окна делать, скажем, по функции из кнопки - всё ок.
« Последняя редакция: 15. Февраля 2014 :: 19:53 - alyuev »  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Модальное окно теряет события клавиатуры при вызове из мышиных событий
Ответ #1 - 16. Февраля 2014 :: 14:21
Печать  
Попробуй, по традиции, развязаться с событиями. Т.е. либо взводишь флаг "флВызов=1;" и затем в Обработка ожидания раз в секунду смотришь "Если флВызов=1 Тогда ОткрытьФормуМодально()", и далее. Либо, что, имхо, правильнее и точнее - в нужном месте делаешь "Сервис.ВнешнееСобытие()" и в Обработке внешнего события делаешь открытие модального окна.
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Модальное окно теряет события клавиатуры при вызове из мышиных событий
Ответ #2 - 17. Февраля 2014 :: 04:59
Печать  
Та ну ?

Т.е в отчете Обработка2.ert у тя прописана своя ПриОтжатии/нажатии кнопки и она не ловит ничего ?...
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Модальное окно теряет события клавиатуры при вызове из мышиных событий
Ответ #3 - 17. Февраля 2014 :: 08:49
Печать  
Да, ничего не ловит. См. пример во вложении
  

Test_events.rar ( 18 KB | Загрузки )

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Модальное окно теряет события клавиатуры при вызове из мышиных событий
Ответ #4 - 17. Февраля 2014 :: 09:57
Печать  
Salimbek, спасибо, через Сервис.ВнешнееСобытие() заработало.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Модальное окно теряет события клавиатуры при вызове из мышиных событий
Ответ #5 - 17. Февраля 2014 :: 12:22
Печать  
Можно было и в ложном закрытии..
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Модальное окно теряет события клавиатуры при вызове из мышиных событий
Ответ #6 - 17. Февраля 2014 :: 13:07
Печать  
Это понятно. Тут больше к разработчикам Формекса заметка - типа баг. Если другие подтвердят.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Модальное окно теряет события клавиатуры при вызове из мышиных событий
Ответ #7 - 18. Февраля 2014 :: 04:33
Печать  
Это не только по Формэксу такое.
В первый раз я на такое поведение наткнулся, когда обрабатывал события Табличного поля, типа по двойному щелчку надо было этот слой сделать невидимым, а другой отобразить. И хотя в событии тп_Выбор() все остальные элементы "прятались", Табличное поле гордо показывалось поверх всех слоев. Из чего был сделан вывод, что ТП, получившее событие, остается "активным" до тех пор, пока событие не будет обработано.
С тех пор я завел себе правило, что события - оно хорошо, но сначала надо вернуть управление 1С-ке.
Здесь, похоже, аналогичный случай, т.е. формэкс зашел в обработку события, затем, открывая в этой обработке модальное окно, процедура обработки не завершается, пока модальное окно не будет закрыто. Соответственно новые обработчики события не стартуют, т.к. есть не завершенный обработчик.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать