246______________________________________________Глава 4

а)                                               б)
Рис. 4.7

Проектирование с учетом приоритетов значений Align

часть правой половины экрана) и значение alClient для Рапе12. В результате полу-
чим нужное выравнивание всех панелей.

4.2.2 Изменение местоположения и размеров компонентов

Заданием значений Align задачу планировки окна с изменяющимися размера-
ми еще нельзя считать решенной. Вернемся к ранее рассмотренному примеру.
Рис. 4.6 показал, что в нем при изменении размеров окна метка StaticTextl, оста-
ющаяся на месте, перестает быть в середине панели, а размер списка ListBoxl не
изменяется.

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

В C+4-Builder 4 оконные компоненты имеют свойство Anchors — привязку к
родительскому компоненту при изменении размеров последнего. Это свойство
представляет собой множество, которое может содержать следующие элементы:

akTop       Верхний край компонента привязан к верхнему краю родитель-
ского компонента

akLeft       Левый'край компонента привязан к левому краю родительского
компонента

akRight      Правый -край компонента привязан к правому краю родитель-
ского компонента                                           ;

akBottom    Нижний край компонента привязан к нижнему краю родитель-
ского компонента                                          1

Если в множестве Anchors присутствуют привязки к "противоположным сторо-
нам родительского компонента, то при изменении размеров родительского компо-
нента происходит растяжение или сжатие дочернего компонента, поскольку рас-
стояния от сторон родительского компонента выдерживаются. Сжатие может про-
исходить вплоть до полного исчезновения изображения данного компонента. Поэ-
тому необходимо ограничивать диапазон допустимого изменения размеров. Спосо-
бы такого ограничения будут рассмотрены несколько позднее.

По умолчанию привязка осуществляется к левому и верхнему краям родите- J
льского компонента. Т.е. по умолчанию свойство Anchors равно [akLeft,akTop]. 1
Если задать в свойстве Anchors привязку к противоположным сторонам родитель-
ского компонента, то при изменении размеров родительского компонента будут .
меняться размеры и данного компонента. Если для списка ListBoxl в нашем при- |