Смещение объектов
Мы уже видели, как работает свойство "Смещение". Рассмотрим другой режим работы смещения – "Смещение при перекрытии". В инспекторе объектов этому режиму соответствует значение свойства ShiftMode
= smWhenOverlapped. При этом смещение объекта будет происходить только в том случае, если лежащий сверху объект при растягивании перекрыл данный объект.
На рисунке ниже представлено три случая. Как мы видим, нижний объект со включенной опцией "Смещение при перекрытии" смещается только в последнем случае, когда в верхнем объекте много текста и он перекрывает нижний.
Если же включить опцию "Смещение", то нижний объект будет смещаться в любом случае:
В некоторых случаях это позволяет реализовать довольно сложную логику отрисовки объектов, особенно если один объект лежит сразу над несколькими. Так, в следующем примере оба верхних объекта содержат растягиваемый текст, а у нижнего объекта включена опция "Смещение при перекрытии". Независимо от количества текста в верхних объектах, нижний объект всегда будет выведен вплотную к тому объекту, который содержит больше текста:
Если же в этом примере у нижнего объекта включить опцию "Смещение", то нижний объект сместится дважды, т.к. он находится под двумя объектами, и образуется ненужный в данном случае зазор.