OberonCore https://forum.oberoncore.ru/ |
|
Распространение модельного сообщения только для видимых? https://forum.oberoncore.ru/viewtopic.php?f=23&t=3279 |
Страница 1 из 1 |
Автор: | Иван Кузьмицкий [ Среда, 23 Февраль, 2011 20:52 ] |
Заголовок сообщения: | Распространение модельного сообщения только для видимых? |
На форме размещено некое отображение, способное отреагировать на определённое модельное сообщение. Когда это отображение находится в видимой части формы, то оно реагирует. А если скроллинг формы сместит отображение за границу фрейма, то оно перестанет получать модельные сообщения. Совершенно непонятно, как фреймворк определяет это отображение как невидимое. Ведь для отсылки модельного сообщения я использую Views.BroadcastModelMsg, а там никакой мистики не содержится. |
Автор: | Александр Ильин [ Среда, 23 Февраль, 2011 22:10 ] |
Заголовок сообщения: | Re: Распространение модельного сообщения только для видимых? |
Фреймы существуют только для видимых объектов, вот и весь сказ. |
Автор: | Иван Кузьмицкий [ Четверг, 24 Февраль, 2011 00:14 ] |
Заголовок сообщения: | Re: Распространение модельного сообщения только для видимых? |
Да, и Цитата: Model and view messages are broadcast along frame trees. (System/Docu/Views.odc)Ну и получается, что если отображение скрыто, то оно никак не получит сообщение. |
Автор: | Евгений Темиргалеев [ Четверг, 24 Февраль, 2011 09:47 ] |
Заголовок сообщения: | Re: Распространение модельного сообщения только для видимых? |
Иван Кузьмицкий писал(а): Ну и получается, что если отображение скрыто, то оно никак не получит сообщение. Угу. Эти сообщения предназначены для визуальных обновлений.я меня тоже такой вопрос возникал (viewtopic.php?f=23&t=2876) |
Автор: | Иван Кузьмицкий [ Четверг, 24 Февраль, 2011 10:11 ] |
Заголовок сообщения: | Re: Распространение модельного сообщения только для видимых? |
Евгений Темиргалеев писал(а): тоже такой вопрос возникал У меня ж ситуация аналогичная.Я сделал визуальный компонентик - "ресайзер". Его бросаешь на форму и он должен следить за изменениями размера своего контейнера (как только размеры изменились, он пересчитывает координаты всех внедрённых в форму отображений - что-то сдвигает, что-то растягивает, а что-то вообще не трогает). Ну так вот, пока форма вся на виду - ресайзер отлично работает. А если форма со скроллером, то стоит прокрутить ея до исчезновения из виду отображения ресайзера, как ресайзер перестаёт работать. Я машинально-стереотипно запулил сообщение на форму, но оно не дошло (естественно) до скрытого ресайзера. Вот эта ситуация несколько однобока (я не говорю, что она неправильная, наоборот - концептуально всё чисто). Вроде бы все отображения в одном домене, в одном контейнере, а сообщение не проходит. Конечно, сам собой напрашивается ход - взять модель контейнера, тупо вручную перебрать все внедрённые отображения, и дёрнуть их за нужный обработчик. |
Автор: | Евгений Темиргалеев [ Четверг, 24 Февраль, 2011 11:47 ] |
Заголовок сообщения: | Re: Распространение модельного сообщения только для видимых? |
Тогда может сделать обёртку для формы? Пусть она перебирает и меняет размеры. А от ресайзера отказаться. |
Автор: | Иван Кузьмицкий [ Четверг, 24 Февраль, 2011 13:03 ] |
Заголовок сообщения: | Re: Распространение модельного сообщения только для видимых? |
Я сейчас и не упомню, почему отказался от обёртки. Но такой вариант рассматривал, точно. А сейчас сделал "ход конём": когда контейнер в режиме маски, то ресайзер автоматически растягивается до габаритов контейнера и поэтому виден всегда. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |