Пришла мысль, что текстовый документ прекрасно подходит для визуального редактирования полос (bands) отчёта. В качестве полос выступают формы. Нужно теперь спрятать от пользователя "излишнюю" функциональность текста.

Ещё понадобилось управлять размерами обёрнутого текста

Обернуть отображение текста в свою View, потом обрабатывать надлежащим образом сообщения... Обернуть текст просто, а вот изменить размеры обёрнутого отображения - никак

Вот исходник:
## Код:
```
IMPORT 
      Containers, Controllers, Dialog, Properties, Ports, Models, Stores, StdLog, TextViews, Views;

   CONST   mm = Ports.mm;

   TYPE
      View = POINTER TO RECORD (Views.View) 
         inner: Views.View;
      END;

   PROCEDURE (v: View) ThisModel (): Models.Model;
   BEGIN
      RETURN v.inner.ThisModel()
   END ThisModel;

   PROCEDURE (v: View) Restore (f: Views.Frame; l, t, r, b: INTEGER);
      VAR msg: Properties.SetMsg; prop: Properties.SizeProp;
   BEGIN
      v.inner.context.SetSize(20*mm, 20*mm); (*попытка изменения размера №2 *)

      Views.InstallFrame(f, v.inner, 10*mm, 10*mm, 0, TRUE);
   END Restore;

   PROCEDURE (v: View) HandleCtrlMsg (f: Views.Frame; VAR msg: Controllers.Message; VAR focus: Views.View);
   BEGIN
      focus := v.inner
   END HandleCtrlMsg;
   
   PROCEDURE Wrap*;
      VAR poll: Controllers.PollOpsMsg; w: View; replace: Controllers.ReplaceViewMsg; msg: Properties.SetMsg; prop: Properties.SizeProp;
   BEGIN
      Controllers.PollOps(poll);
      IF (poll.singleton # NIL) & ~(poll.singleton IS View) THEN
         (*попытка изменения размера №1, перед подменой*)
         NEW(prop);
         prop.width := 20*mm; prop.height := 20*mm;
         prop.valid := {Properties.width, Properties.height};
         prop.known := prop.valid;
         msg.prop := prop;
         Views.HandlePropMsg(poll.singleton, msg);

         NEW(w); w.inner := poll.singleton; Stores.Join(w, w.inner);
         replace.old := poll.singleton; replace.new := w;
         Controllers.Forward(replace);

      ELSE Dialog.Beep
      END
   END Wrap;
```


Вопрос, собственно, такой - правильно ли посылать сообщение об изменении размеров тексту?