Окна схемы (разметки) инкапсулируют класс TLayoutWindow, инкапсулирующий производный от TWindow класс TLayoutWindow. Как и
TFrameWindow, TLayoutWindow создает основу для декорированных
окон-рамок и возможности упорядочения элементов в области рамки.
Окна схемы (или разметочные окна) называются так потому, что
могут упорядочивать дочерние окна в своей клиентной области. Расположение дочерних окон определяется относительно окна схемы или
другого дочернего окна ("братского" окна - окна равного уровня).
Расположение дочернего окна зависит от параметров схемы, которые
включат в себя ряд правил, описывающих координаты X и Y окон, их
высоту и ширину. Эти правила обычно основываются на координатах
братского окна и, в итоге, на размере и организации окна схемы.
Параметры схемы для дочерних окон содержатся в классе TLayoutMetrics. Объекты параметров схемы состоят из ряда ограничений
схемы. Каждое ограничение описывает правило определения конкретного изменения окна, например X-координаты или ширины окна. Эти
ограничения хранятся в структуре TLayoutConstraints, но обычно
используются производные от нее классы, такие как TEdgeConstraint.
Ограничения схемы определяют соотношение между краем или
размером одного окна и краем или размером братского или родительского окна схемы. Это соотношение может быть достаточно гибким.
Например, можно задать ширину окна как процент от ширины родительского окна. Ограничения задаются обычно с помощью функции
Set, которая определяется в классе TEdgeConstraint и в результате
наследуется из TEdgeOrWidthConstraint и TEdgeOrHeightConstraint.
Параметр edge функции Set определяет, какую часть окна вы
ограничиваете. Для этого используется enum TEdge с 5 возможными
значениями:
вертикальное).
С помощью enum TWidthHeight можно задать ограничение высоты