OberonCore
https://forum.oberoncore.ru/

Вложенные отображения, без модели
https://forum.oberoncore.ru/viewtopic.php?f=24&t=915
Страница 1 из 1

Автор:  Иван Кузьмицкий [ Пятница, 14 Март, 2008 17:14 ]
Заголовок сообщения:  Вложенные отображения, без модели

Вот, появилась потребность обсудить такой вопрос, как внедрение одного контрола в другой.
Например, поле ввода или кнопку в дерево. Такое конструирование новых элементов управления на основе стандартных представляется очень удобным.

В документации по Controls написано, что
Цитата:
В BlackBox элементы управления являются расширенными отображениями. Как и всякое отображение, элемент управления может быть внедрен в любой общий контейнер, такой как форма или текст. Обычно используются формы.

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

Как быть?

Автор:  Илья Ермаков [ Пятница, 14 Март, 2008 17:35 ]
Заголовок сообщения:  Re: Вложенные отображения, без модели

Для внедрения отображения, вообще говоря, не обязательно нужно иметь общий контейнер (Containers.Container) - там просто механика общего назначения.
Внедрить вложенное отображение можно в любое другое, если из Restore этого другого вызвать f.InstallFrame(вкладываемоеОтображение). Тонкость контролов в том, что они не рисуют себя сами через Restore, а используют отрисовку от ОС (рисует, фактически их спец. фрейм, StdCFrames-HostCFrames). Я, честно говоря, не знаю, что будет, если из Restore одного контрола (дерева, например) вызвать Views.InstallFrame для другого контрола - но есть подозрение, что это работать будет. Дерзайте!

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