244______________________________________________Глава 4

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

4.2 Проектирование окон с изменяемыми
размерами

4.2.1 Выравнивание компонентов — свойство Align

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

Пусть, например, вы проектируете форму, окно которой содержит панель Ра-
nell, на которой будут размещаться управляющие компоненты и список ListBoxl,
панель Рапе12, в середине которой будет размещаться некоторая надпись в метке
StaticTextl, и компонент Memol, в котором будут редактироваться тексты
(рис. 4.5 а). Если, разместив их на форме, вы не примете мер для того, чтобы при из-
менении пользователем размеров окна компоненты изменялись, то при том размере
формы, который вы проектировали, все будет выглядеть нормально (рис. 4.5 а). Но
если пользователь растянет размеры формы, надеясь увеличить площадь редактиро-
вания и длину списка, то приложение приобретет нелепый вид, показанный на
рис. 4.56. Увеличение формы просто приводит к увеличению на ней пустого места.

Чтобы избежать таких неприятностей, у многих компонентов и, в частности, у
панелей, есть свойство Align — выравнивание. По умолчанию оно равно aINone,
что означает, что никакое выравнивание не осуществляется. Но его можно задать
равным аГГор, или alBottom, или alLeft, или alRight, что означает: компонент
должен занимать всю верхнюю, или нижнюю, или левую, или правую часть кли-
ентской области компонента-контейнера. Под клиентской областью понимается
вся свободная площадь формы или другого контейнера, в которой могут размеща-
ться включенные в этот контейнер компоненты. Можно также задать свойству
Align компонента значение alClient, что приводит к заполнению компонентом
всей свободной клиентской области. Во всех этих случаях размеры компонента бу-
дут автоматически изменяться при изменении размеров контейнера.

а)                                               б)
Рис. 4.5

Результаты изменения размеров окна при неправильном проектировании