OberonCore https://forum.oberoncore.ru/ |
|
Странная ситуация с распространением уведомления https://forum.oberoncore.ru/viewtopic.php?f=23&t=3252 |
Страница 1 из 1 |
Автор: | Иван Кузьмицкий [ Пятница, 11 Февраль, 2011 15:39 ] |
Заголовок сообщения: | Странная ситуация с распространением уведомления |
Вот есть форма, на ней расположены контрол TreeControl и текст-вью. В текст внедрено отображение, которому в какой-то момент понадобилось изменить свой размер. Это отображение обращается к собственному контексту, вызывая SetSize. Размер контекста меняется, при этом срабатывает процедура-уведомитель контрола Tree с операцией Dialog.changed. Непонятненько. Каким образом изменение размера внедрённой вьюхи порождает волну уведомлений, да так, что это чувствуется деревом? |
Автор: | Иван Кузьмицкий [ Пятница, 11 Февраль, 2011 18:40 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Насколько я сумел разобраться, схема примерно такая: Внедрённое в текст отображение меняет размер своего контекста, это совершенно легальная операция. Правится модель текста. Фреймворк видит это и рассылает известие об изменении модели. Ведь надо же оповестить остальных об этом событии. Это известие трансформируется в сообщение Views.UpdateMsg (или Views.Notify, я не разобрался) и через окно документа приходит в дерево (вот так изменение текстовой модели затрагивает деревянный контрол). А фрейм дерева (реализованный в HostCFrames) и вызывает уведомитель. В общем, нормальная схема. Только в уведомлении дерева у меня стоит обновление списка событий - при выборе очередного узла идёт обращение к базе данных, что заметно на глаз. Когда выбираешь из дерева сам, это воспринимается нормально, а когда вводишь текст во внедрённое отображение - начинается непонятное мелькание. В принципе, есть уже наработки составного документа, заменяющего контрол дерева. Возможно, это лучший вариант. |
Автор: | Евгений Темиргалеев [ Пятница, 11 Февраль, 2011 20:57 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Иван Кузьмицкий писал(а): В принципе, есть уже наработки составного документа, заменяющего контрол дерева. Возможно, это лучший вариант. Однозначно.
|
Автор: | Info21 [ Пятница, 11 Февраль, 2011 21:18 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Иван Кузьмицкий писал(а): есть уже наработки составного документа, заменяющего контрол дерева. Возможно, это лучший вариант. Можно хотя бы полтора слова в пояснение?
|
Автор: | Пётр Кушнир [ Пятница, 11 Февраль, 2011 23:05 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Info21 писал(а): Иван Кузьмицкий писал(а): есть уже наработки составного документа, заменяющего контрол дерева. Возможно, это лучший вариант. Можно хотя бы полтора слова в пояснение?http://dl.dropbox.com/u/9533224/tree.PNG |
Автор: | Info21 [ Пятница, 11 Февраль, 2011 23:20 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Пётр Кушнир писал(а): аля фолды. каждый новый уровень вложенности с индентом, плюс раскрыть фолд можно кликнув по надписи... Спасибо. Если это то, что я думаю, то это хорошо ![]() |
Автор: | Иван Кузьмицкий [ Суббота, 12 Февраль, 2011 08:55 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Пётр Кушнир писал(а): аля фолды. каждый новый уровень вложенности с индентом, плюс раскрыть фолд можно кликнув по надписи... Добавлю, что составной документ значительно расширяет возможности такого "дерева", можно менять шрифты, вставлять картинки и много чего другого.
|
Автор: | Info21 [ Суббота, 12 Февраль, 2011 11:45 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Иван Кузьмицкий писал(а): Пётр Кушнир писал(а): аля фолды. каждый новый уровень вложенности с индентом, плюс раскрыть фолд можно кликнув по надписи... Добавлю, что составной документ значительно расширяет возможности такого "дерева", можно менять шрифты, вставлять картинки и много чего другого.Наверное, есть некая "когнитивная слепота", не позволяющая увидеть возможности этой инфраструктуры. Мысль бьется в шаблонах обычных контролов. Впечатление такое. Примерно как в случае с документом-скатёркой коммандеров и данных вместо каскадов диалоговых форм. |
Автор: | Пётр Кушнир [ Суббота, 12 Февраль, 2011 11:51 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
приципиальное различие формы и текста в том, что на форме расположение отображений произвольно(в т.ч. контролы могут перекрывать друг друга(динамически), создавая интересный интерфейсный приём(всплывающие подсказки например)), а в тексте - последовательно(как цепочка символов). поэтому, мы пока пришли к решению в виде комбинирования формы и текста в виде т.н. панели. |
Автор: | Info21 [ Суббота, 12 Февраль, 2011 14:08 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Пётр Кушнир писал(а): мы пока пришли к решению в виде комбинирования формы и текста в виде т.н. панели. Будет возможность, пож., поделитесь.
|
Автор: | Edward Ivanov [ Суббота, 12 Февраль, 2011 18:38 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
В правильных GUI-интерфейсах возможен обход по контролам по клавишам Tab (Shift-Tab). Гарантируется, что пользователь может работать без мыши, это официальное требование Microsoft. Вопрос: как это будет работать в обероновских составных документах? Например, если folds будут имитировать treecontrol, как я могу достучаться до него без мыши? В BlackBox'е так и не получилось свернуть-распахнуть фолды ручками. Помню, Илья Ермаков выкладывал пример приложения с тестами для контроля учащихся. Проверял, без мыши не работало. |
Автор: | Пётр Кушнир [ Суббота, 12 Февраль, 2011 19:00 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Я что-то не припомню топика с вашими предложениями по поводу исправления этой ситуации. Ну там, чтобы с постановкой задачи, с кодом решения, с модернизированным модулем Folds, приаттаченым к первому посту. Как так? |
Автор: | Евгений Темиргалеев [ Воскресенье, 13 Февраль, 2011 19:38 ] |
Заголовок сообщения: | Re: Странная ситуация с распространением уведомления |
Оффтоп удалён. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |