Пока нашел вот такое решение. Меня вполне устроило. Спасибо Петру огромное!
Код:
IMPORT Containers, Controllers, Files, FormModels,Views, Windows, FormViews, Models;
PROCEDURE ReplaceForm*;
VAR
win: Windows.Window; old: FormViews.View; new: Views.View;
wr : FormModels.Writer; m : FormModels.Model; c : Containers.Controller; w, h: INTEGER;
sm: Containers.SetOpts;
BEGIN
(* Стираем все со старой формы *)
win := Windows.dir.Focus(Controllers.frontPath);
old := win.doc.ThisView()(FormViews.View);
m:=old.ThisModel();
c:=old.ThisController();
Models.BeginModification(Models.notUndoable, m);
c.SetOpts(Containers.layout);
c.SelectAll(TRUE);
c.DeleteSelection();
c.SetOpts(Containers.mask);
Models.EndModification(Models.notUndoable, m);
wr := m.NewWriter(NIL); wr.Set(NIL);
(* Открываем новую форму *)
new := Views.OldView(Files.dir.This("Lumi/Rsrc"), "Monitor");
sm.valid := {Containers.noSelection, Containers.noFocus, Containers.noCaret};
sm.opts := {Containers.noSelection, Containers.noCaret};
Views.HandlePropMsg(new, sm);
old.context.GetSize(w, h);
wr.WriteView(Views.CopyOf(new, FALSE),0,0, w, h);
END ReplaceForm;