OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 08:05

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: Среда, 23 Февраль, 2011 20:52 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
На форме размещено некое отображение, способное отреагировать на определённое модельное сообщение.

Когда это отображение находится в видимой части формы, то оно реагирует. А если скроллинг формы сместит отображение за границу фрейма, то оно перестанет получать модельные сообщения.

Совершенно непонятно, как фреймворк определяет это отображение как невидимое. Ведь для отсылки модельного сообщения я использую Views.BroadcastModelMsg, а там никакой мистики не содержится.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Февраль, 2011 22:10 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Фреймы существуют только для видимых объектов, вот и весь сказ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Февраль, 2011 00:14 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Да, и
Цитата:
Model and view messages are broadcast along frame trees.
(System/Docu/Views.odc)

Ну и получается, что если отображение скрыто, то оно никак не получит сообщение.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Февраль, 2011 09:47 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Иван Кузьмицкий писал(а):
Ну и получается, что если отображение скрыто, то оно никак не получит сообщение.
Угу. Эти сообщения предназначены для визуальных обновлений.

я меня тоже такой вопрос возникал (viewtopic.php?f=23&t=2876)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Февраль, 2011 10:11 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Евгений Темиргалеев писал(а):
тоже такой вопрос возникал
У меня ж ситуация аналогичная.

Я сделал визуальный компонентик - "ресайзер". Его бросаешь на форму и он должен следить за изменениями размера своего контейнера (как только размеры изменились, он пересчитывает координаты всех внедрённых в форму отображений - что-то сдвигает, что-то растягивает, а что-то вообще не трогает).

Ну так вот, пока форма вся на виду - ресайзер отлично работает. А если форма со скроллером, то стоит прокрутить ея до исчезновения из виду отображения ресайзера, как ресайзер перестаёт работать.

Я машинально-стереотипно запулил сообщение на форму, но оно не дошло (естественно) до скрытого ресайзера.

Вот эта ситуация несколько однобока (я не говорю, что она неправильная, наоборот - концептуально всё чисто). Вроде бы все отображения в одном домене, в одном контейнере, а сообщение не проходит. Конечно, сам собой напрашивается ход - взять модель контейнера, тупо вручную перебрать все внедрённые отображения, и дёрнуть их за нужный обработчик.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Февраль, 2011 11:47 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Тогда может сделать обёртку для формы? Пусть она перебирает и меняет размеры. А от ресайзера отказаться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Февраль, 2011 13:03 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Я сейчас и не упомню, почему отказался от обёртки. Но такой вариант рассматривал, точно.

А сейчас сделал "ход конём": когда контейнер в режиме маски, то ресайзер автоматически растягивается до габаритов контейнера и поэтому виден всегда.


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

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


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

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


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

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