Выравнивающие линии

Основным назначением выравнивающих линий служит помощь в аккуратной расстановке элементов управления и упрощения повторного редактирования форм. Также их можно использовать для визуального деления формы на смысловые части, понятные дизайнеру формы.

Выравнивающие линии являются свойством панели, т.е. у каждой панели и даже у каждой страницы панели может быть свой набор краевых и обычных выравнивающих линий.

Указатель курсора мыши над выравнивающими линиями появляется не сразу, а с некоторой задержкой (0.5 сек). Этот временной интервал позволяет, например, начинать групповое выделение элементов управления с области, расположенной вне краевых линий. В противном случае, вместо начала выделения произошел бы сдвиг краевой линии. Зона чувствительности курсора мыши совпадает с зоной захвата (см. ниже).

Все нижесказанное справедливо только для панелей с установленным свойством  "использовать видимую область".

Добавление и удаление

Каждая страница панели может содержать неограниченное количество выравнивающих линий. Добавить новую линию можно двумя способами:

Удалить выравнивающую линию также можно двумя способами:

Можно также удалить все выравнивающие линии кроме краевых и невидимых с помощью команды "Удалить все выравнивающие линии" контекстного меню панели.

Приоритет выравнивающих линий

Выравнивающие линии, как видимые, так и невидимые, имеют приоритет над сеткой. Например, можно отключить сетку, поставить выравнивающую линию в точное положение и включить сетку. Тогда редактируемые элементы управления будут выравниваться по сетке только в том случае, если им не удалось "прилипнуть" к выравнивающей линии.

Видимые линии имеют приоритет над невидимыми.

Краевые выравнивающие линии

Краевые выравнивающие линии формируют визуальный зазор между краем формы и размещенными на ней элементами управления, не допуская их вылезания за установленные границы. Назначение зазора - облегчить восприятие формы не допуская слияние элементов управления с границами формы.

Краевые выравнивающие линии участвуют в определении диапазонов полос прокрутки для панелей с не установленным свойством "использовать только видимую область". Т.е. при наличии краевой линии панель будет прокручиваться не до границы последнего элемента управления, а прибавлять к ней зазор, сформированный выравнивающей линией.

По умолчанию, ширина зазора 8 точек по горизонтали и вертикали (96 DPI).

Размещение элементов управления за пределами краевых выравнивающих линий

Как уже говорилось выше, краевые линии формируют и поддерживают зазор от границ формы до элементов управления. Однако иногда бывает необходимость разместить некоторые элементы управления вплотную к границам формы, оставив при этом поддержку зазора для всех остальных. Для этого необходимо полностью перенести нужный элемент управления за краевые линии, чтобы они не пересекали его. При этом соответствующие зазоры краевых линий должны быть достаточно большими, чтобы в них поместился выбранный элемент управления.

Типичным примером такого использования краевых выравнивающих линий служат верхняя и нижние командные панели во всех типовых конфигурациях.

Элементы управления, расположенные вне краевых линий, особым образом реагируют на изменение размеров формы или панели:

В приведенных ниже примерах панель кнопок будет увеличивать свою ширину при увеличении размера формы, и будет сдвигаться ниже, вслед за краевой линией, при увеличении высоты формы:

В зоне за пределами краевых линий сохраняется действие выравнивающих линий. Краевые линии в этой зоне ведут себя также как обычные выравнивающие.

Зона захвата выравнивающих линий

При приближении какой-либо границы элемента управления к выравнивающей линии ближе чем на 6 точек (96 DPI) она (граница) начинает "прилипать" к ней. Зону захвата можно изменить в диалоге настройки параметров (меню "Сервис" - "Параметры") в поле  "область срабатывания" на закладке "Форма" (по умолчанию, 5 точек экрана).

При попадании элемента управления в зону захвата видимой или невидимой линии, она обозначает свое срабатывание путем "промаргивания".

Особенности "прилипания" элементов управления к выравнивающим линиям

Прилипание происходит только при изменении размера или положения элементов управления при помощи мыши. При выполнении этих операций при помощи клавиатуры или палитры свойств присутствие выравнивающих линий, как видимых, так и невидимых, игнорируется.

К видимой выравнивающей линии может "прилипать" любая граница элемента управления, направленная соответствующим образом - правая и левая к вертикальной линии, верхняя и нижняя - к горизонтальной.

К невидимым линиям допускается прилипание только одноименных границ - например, только правых или только левых. Например, если невидимая линия образована в результате совпадения верхних границ двух элементов управления, то при попадании третьего элемента управления в зону захвата этой линии к ней будет "прилипать" только его верхняя граница. В приведенном ниже примере при перетаскивании флажка только его левая граница будет "прилипать" к невидимой линии, образованной левыми границами двух полей ввода. Правая граница прилипать не будет.

Перемещение выравнивающих линий

При перемещении выравнивающих или краевых линий при помощи мыши необходимо учитывать следующие особенности:

При изменении размеров формы вслед за границами перемещаются соответствующие краевые линии:

Сеанс изменения границ формы - период от нажатия до отпускания левой кнопки мыши при изменении размеров формы.

Важное замечание - изменение размеров панели с нажатой клавишей Ctrl приводит к тому, что на всех страницах этой панели краевые линии подвинут за собой связанные с ними границы элементов управления. 

Отличия между видимыми и невидимыми линиями

Обобщая все вышесказанное, приведем список отличий между видимыми (обычными и краевыми) и невидимыми линиями.

Видимые Невидимые
Создаются пользователем самостоятельно Формируются автоматически при точном совпадении одноименных границ более чем двух элементов управления на одной странице панели
Могут перетаскиваться мышкой как сами по себе, так и вместе с присоединенными к ним элементами управления или удаляться по желанию пользователя  
Притягивает к себе любую границу элемента управления, ориентированную соответствующим образом Притягивает только одноименные границы элементов управления (например, только верхние, если линия образована совпадением верхних границ)
Приоритетнее невидимых линий