OberonCore
https://forum.oberoncore.ru/

"Универсальная" обёртка
https://forum.oberoncore.ru/viewtopic.php?f=23&t=2850
Страница 1 из 1

Автор:  GameHunter [ Вторник, 14 Сентябрь, 2010 23:51 ]
Заголовок сообщения:  "Универсальная" обёртка

Насколько мне известно, создать в ББ универсальную обёртку (wrapper) не возможно,
так как обёрнутый объект экранируется обёрткой от среды.

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

Код:
PROCEDURE (d: StdDocument) ThisView (): Views.View;
BEGIN
   RETURN d.model.view
END ThisView;


заменить на

Код:
PROCEDURE (d: StdDocument) ThisView (): Views.View;
BEGIN
   RETURN Wrapper.Inner(d.model.view)
END ThisView;


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

Этот способ основан только на экспериментальных наблюдениях (ББ 1.6) и по этому
может быть ошибочным. Пока всё работает...

Что уважаемые специалисты думают об этом?

Вложения:
WrapperNoScreening.rar [15.26 КБ]
Скачиваний: 392

Автор:  Info21 [ Среда, 15 Сентябрь, 2010 11:22 ]
Заголовок сообщения:  Re: "Универсальная" обёртка

Wrapper разве не избыточность?

Автор:  GameHunter [ Среда, 15 Сентябрь, 2010 16:44 ]
Заголовок сообщения:  Re: "Универсальная" обёртка

Не знаю...
У меня обёртки применяются пока для изменения цвета фона, инверсии цветов, автораскраски синтаксиса. Как это всё сделать без обёрток?
И на форуме этот вопрос несколько раз поднимался...

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