OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 27 Июнь, 2022 18:15

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 07 Январь, 2022 20:33 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1447
В продолжение того, что я писал вчера в телеграм. Похоже, в PET всё же есть проблема с диспетчерами сообщений (Sequencer). Их два - один живёт в окне (FormWindow), другой живёт в форме (которая суть VisualComponent).

В норме, если окно не может обработать соощбение, оно вызывает Handle для формы, форма перекладывает сообщение в свой диспетчер и дальше оно обрабатывается "по-человечески", т.е. в активном объекте MsgSequencer, принадлежащем форме (а не окну).

В PET проблемная строчка - вызов currentPage.HandleShortcut после строчки (* relay hot key to current page *).
Здесь вместо вызова Handle идёт прямой вызов метода из PETPanel, т.е. действия формы. Т.е. секвенсер от окна, а действия мы выполняем над формой. Я не знаю, правильно это или нет и всё почему-то работает. Но достаточно сделать вполне невинные доработки, например, сделать, чтобы по кнопке F6 происходило переключение между кадрами в режиме при нажатой кнопке Split, как получаем красный экран из-за того, что действия происходят не в том активном объекте.

Правилен ли такой прямой вызов метода другого активного объекта в данном случае - я до сих пор не знаю, но выглядит достаточно подозрительным, чтобы опубликовать. Я буду раскапывать эту ситуацию дальше и надеюсь, что смогу её разрешить, но вести записи буду на своём форуме, а не тут, во избежание различных эксцессов.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2022, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB