Насколько мне известно, создать в ББ универсальную обёртку (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) и по этому
может быть ошибочным. Пока всё работает...
Что уважаемые специалисты думают об этом?