OberonCore
https://forum.oberoncore.ru/

Проведите ликбез как делать вложенные отображения
https://forum.oberoncore.ru/viewtopic.php?f=24&t=6923
Страница 1 из 1

Автор:  Александр К [ Среда, 29 Март, 2023 17:59 ]
Заголовок сообщения:  Проведите ликбез как делать вложенные отображения

Посоветуйте, может в книге какой или где-то ещё есть подробное описание того как делать вложенные отображения.
В частности непонятно:
    как пользоваться методом InitContext отображения;
    как пользоваться методом Join хранилища;
    как пользоваться методом InstallFrame отображения;
    как изменять размер внедрённого отображения;
    как передать фокус внедрённому отображению так, чтобы оно могло реагировать на действия пользователя.
К сожалению я плохо разбираюсь в чужом коде - советы "посмотри как это сделано" в TextViews, FormViews не годятся.
Заранее благодарю.

Автор:  arisu [ Среда, 29 Март, 2023 19:39 ]
Заголовок сообщения:  Re: Проведите ликбез как делать вложенные отображения

Obx. в Obx обычно есть ответы на всё. например, в ObxTwins. и вся глава «View Construction» из встроеного туториала. подробнее и нагляднее этого, пожалуй, нет.

что следует учесть — что в BB довольно… скажем так, неортодоксальная модель построения GUI, аналоги которой врядли где-то есть. в частности, дерево видимых view, по которым распространяются многие сообщения, создаётся в момент отрисовки экрана, в методе Restore. и существует до следующей перерисовки, когда опять создаётся заново. именно за этим служит `InstallFrame()`. это довольно интересная идея, которая позволяет строить очень динамические UI. соответственно, понятие фокуса тоже создаётся в момент перерисовки. немного необычная концепция.

также в BB «окна» не несут особой смысловой нагрузки кроме «быть чем-то, на чём можно рисовать». вся система — про работу с документами, и главная сущность в ней, соответственно, документ. каждый документ умеет сохраняться (потому что наследник Store), и имеет так называемый «домен». Join нужна для того, чтобы «пристегнуть» созданые объекты к одному из таких документов («включить в домен»). обычно к домену родителя. обо всём этом довольно подробно рассказано в документации к модулю Stores.

конексты вообще очень интересная (я бы сказал — гениальная) штука, которой я не видел ни в одном другом тулките. контекст служит для того, чтобы связать с view некую информацию, которая нужна его родителю.

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

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

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/