Это я что-то неправильно делаю, но что именно, понять не могу.

Суть вот в чём.

На форме лежит отображение, у которого в методе Restore производится проверка изменения размеров этой формы (форма берётся через Views.HostOf). Если размеры изменились, то берём модель формы и пропорционально меняем размеры всех внедрённых на форму отображений.

И вся эта музыка вполне себе работает. Только иногда выскакивает вот это:

> -- Цитата:
> TRAP 22  (precondition violated) Views.RestoreRoot   [00002C54H] 	.b	INTEGER	4104540	.col	INTEGER	16777215	.gb	INTEGER	2534633	.gl	INTEGER	43425	.gr	INTEGER	2191803	.gt	INTEGER	72000	.l	INTEGER	74041	.port	Ports.Port	NIL	.r	INTEGER	728091	.rd	Ports.Rider	NIL	.root	Views.RootFrame	[01AA0F70H] 	.t	INTEGER	3875940	.tl	Views.TLS	NIL	.u	INTEGER	9525 Views.ValidateRoot   [0000300DH] 	.f	Views.Frame	[01A20CE0H] 	.i	INTEGER	3	.n	INTEGER	9	.rgn	Views.Region	[01D176A0H] 	.root	Views.RootFrame	[01AA0F70H] 	.v	Views.View	[01D08FE0H]  Windows.Window.Update   [00000175H] 	.w	Windows.Window	[01D19040H]  Windows.RestoreSequencer   [00001CBBH] 	.seq	Sequencers.Sequencer	[01D19910H] 	.w	Windows.Window	[01D19040H]  Windows.Directory.Update   [000007C4H] 	.d	Windows.Directory	[01A65630H] 	.u	Windows.Window	[01D19040H] 	.w	Windows.Window	NIL HostMenus.Loop   [00003CC0H] 	.done	BOOLEAN	FALSE	.f	SET	{0..5}	.n	INTEGER	2	.res	INTEGER	0	.w	HostWindows.Window	NIL Kernel.TrapHandler   [000039BDH] 	.context	POINTER	[629A58F9H]	.dispCont	INTEGER	29033072	.estFrame	POINTER	[629A5D55H]	.excpRec	POINTER	[0022FC94H]

Куда копать, что бы это значило? Отложенное действие (даже с задержкой в одну секунду) не помогает - всё равно этот же трап, ведущий в

> -- Цитата:
> PROCEDURE RestoreRoot* (root: RootFrame; l, t, r, b: INTEGER);		VAR port: Ports.Port; rd: Ports.Rider;			u,  gl, gt, gr, gb: INTEGER; col: Ports.Color;			tl: TLS;	BEGIN		ASSERT(root # NIL, 20); ASSERT(root.state = open, 21);		...