OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 15 Декабрь, 2018 07:10

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




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 11 Февраль, 2011 15:39 

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

Это отображение обращается к собственному контексту, вызывая SetSize.

Размер контекста меняется, при этом срабатывает процедура-уведомитель контрола Tree с операцией Dialog.changed.

Непонятненько. Каким образом изменение размера внедрённой вьюхи порождает волну уведомлений, да так, что это чувствуется деревом?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Февраль, 2011 18:40 

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

Внедрённое в текст отображение меняет размер своего контекста, это совершенно легальная операция. Правится модель текста.

Фреймворк видит это и рассылает известие об изменении модели. Ведь надо же оповестить остальных об этом событии. Это известие трансформируется в сообщение Views.UpdateMsg (или Views.Notify, я не разобрался) и через окно документа приходит в дерево (вот так изменение текстовой модели затрагивает деревянный контрол). А фрейм дерева (реализованный в HostCFrames) и вызывает уведомитель.

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

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


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Февраль, 2011 21:18 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7932
Откуда: Троицк, Москва
Иван Кузьмицкий писал(а):
есть уже наработки составного документа, заменяющего контрол дерева. Возможно, это лучший вариант.
Можно хотя бы полтора слова в пояснение?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 11 Февраль, 2011 23:05 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2538
Откуда: Россия, Ярославль
Info21 писал(а):
Иван Кузьмицкий писал(а):
есть уже наработки составного документа, заменяющего контрол дерева. Возможно, это лучший вариант.
Можно хотя бы полтора слова в пояснение?
аля фолды. каждый новый уровень вложенности с индентом, плюс раскрыть фолд можно кликнув по надписи...

http://dl.dropbox.com/u/9533224/tree.PNG


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7932
Откуда: Троицк, Москва
Пётр Кушнир писал(а):
аля фолды. каждый новый уровень вложенности с индентом, плюс раскрыть фолд можно кликнув по надписи...
Спасибо. Если это то, что я думаю, то это хорошо :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Февраль, 2011 08:55 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
Пётр Кушнир писал(а):
аля фолды. каждый новый уровень вложенности с индентом, плюс раскрыть фолд можно кликнув по надписи...
Добавлю, что составной документ значительно расширяет возможности такого "дерева", можно менять шрифты, вставлять картинки и много чего другого.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7932
Откуда: Троицк, Москва
Иван Кузьмицкий писал(а):
Пётр Кушнир писал(а):
аля фолды. каждый новый уровень вложенности с индентом, плюс раскрыть фолд можно кликнув по надписи...
Добавлю, что составной документ значительно расширяет возможности такого "дерева", можно менять шрифты, вставлять картинки и много чего другого.
Да, грех не воспользоваться такой мощной инфраструктурой.

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


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

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2538
Откуда: Россия, Ярославль
приципиальное различие формы и текста в том, что на форме расположение отображений произвольно(в т.ч. контролы могут перекрывать друг друга(динамически), создавая интересный интерфейсный приём(всплывающие подсказки например)), а в тексте - последовательно(как цепочка символов). поэтому, мы пока пришли к решению в виде комбинирования формы и текста в виде т.н. панели.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7932
Откуда: Троицк, Москва
Пётр Кушнир писал(а):
мы пока пришли к решению в виде комбинирования формы и текста в виде т.н. панели.
Будет возможность, пож., поделитесь.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 12 Февраль, 2011 18:38 

Зарегистрирован: Вторник, 18 Сентябрь, 2007 08:48
Сообщения: 108
В правильных GUI-интерфейсах возможен обход по контролам по клавишам Tab (Shift-Tab). Гарантируется, что пользователь может работать без мыши, это официальное требование Microsoft.
Вопрос: как это будет работать в обероновских составных документах? Например, если folds будут имитировать treecontrol, как я могу достучаться до него без мыши?
В BlackBox'е так и не получилось свернуть-распахнуть фолды ручками.

Помню, Илья Ермаков выкладывал пример приложения с тестами для контроля учащихся. Проверял, без мыши не работало.


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

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2538
Откуда: Россия, Ярославль
Я что-то не припомню топика с вашими предложениями по поводу исправления этой ситуации. Ну там, чтобы с постановкой задачи, с кодом решения, с модернизированным модулем Folds, приаттаченым к первому посту. Как так?


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4487
Откуда: Россия, Орёл
Оффтоп удалён.


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

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


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

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


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

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