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


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
ОбработкаОжидания() в классах
14. Мая 2019 :: 18:50
Печать  
Help, please! Народ, как дилетант в классах 1cpp, запнулся на поиске альтернативы метода ОбработкаОжидания(). Т.е при вызове изнутри класса модальной формы на ней отказываются работать события формы. Но при вызове формы с помощью метода ОбработкаОжидания() - всё налаживается. Но тут есть подводный камень, отловить обработку возможно только с помощью перехватчика. И если на форме более одного класса, необходимо гонять процедуру сквозь все применённые классы, что очень неудобно, такое решение я применил в панеле кнопок при вызове подсказки HintShow(). Теперь, получается подобный арсенал может бесконтрольно вырасти. Можно, конечно применить какую-то универсальную процедуру типа ВыполнениеОжидания(), в которой отслеживать состояние неких глобальных ключей. Но и здесь мы не избежим громоздкости в ущерб динамичности и удобства. Так вот вопрос: имеется более красивое и удобное решение этой проблемы, чтобы избежать использование дополнительных событий в существующих классах?

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


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

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: ОбработкаОжидания() в классах
Ответ #1 - 15. Мая 2019 :: 10:47
Печать  
Запускать форму в классе еще можно через Сервис.ВнешнееСобытие(), но оно тоже тут не поможет. Т.к. всё равно получается асинхронность.
  

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


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 631
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: ОбработкаОжидания() в классах
Ответ #2 - 15. Мая 2019 :: 16:36
Печать  
Зачем тогда вызывать форму из класса?
Вызывай форму из самой формы.
"Дернуть" родительскую форму ты из из класса можешь и этот вызов видимо тоже.
  
Наверх
www  
IP записан
 
recop
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 247
Местоположение: Калуга
Зарегистрирован: 06. Июня 2017
Пол: Мужской
Re: ОбработкаОжидания() в классах
Ответ #3 - 15. Мая 2019 :: 19:26
Печать  
Djelf писал(а) 15. Мая 2019 :: 16:36:
Зачем тогда вызывать форму из класса?
Вызывай форму из самой формы.
"Дернуть" родительскую форму ты из из класса можешь и этот вызов видимо тоже.


Можно. Но результат без обработки ожидания будет тот же. Вообще с этой проблемой сталкиваюсь непрерывно, например, при прорисовке плана, при смене типа курсора и т.п. Издержки одного потока. Без метода ОбработкаОжидания() написать что-то более-менее серьёзное на языке 1с в принципе невозможно.
Пока решил вписать во все применяемые классы и прогнать через перехватчик функцию ОбработкаОжидания() + две глобальные переменные WaitingContext и WaitingParameter.

« Последняя редакция: 15. Мая 2019 :: 20:42 - recop »  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать