Сделал немного по-другому.

При изменении размера окна, в окно посылается модельное сообщение:
## Код:
```
PROCEDURE ResizeCallBack* (w, h: INTEGER);
      VAR wnd: Windows.Window; msg: ResizeMsg;
   BEGIN
      wnd := Windows.dir.First();
      IF wnd # NIL THEN 
         wnd.BroadcastModelMsg(msg)
      END
   END ResizeCallBack;
```


Отображение получает это сообщение и создаёт отложенное действие (поставил задержку в 1 секунду):
## Код:
```
PROCEDURE (v: View) HandleModelMsg (VAR msg: Models.Message);
      VAR a: ResizeAction;
   BEGIN
      WITH msg: ResizeMsg DO
         NEW(a); a.v := v; Services.DoLater(a, Services.Ticks() + 1000);
      ELSE
      END
   END HandleModelMsg;
```


Когда действие срабатывает, то отображение проверяет изменения размеров и ресайзит контролы. Трап всё равно выскакивает (Опять же, не всегда и не везде).