Система визуального объектно-ориентированного проектирования C++Builder   91

Чтобы почувствовать все это, проведите эксперимент. Поместите на форму три
панели: две из них непосредственно на форме, а третью — на одной из предыду-
щих. Разместите на форме и на панелях различные метки, кнопки и окна редакти-
рования. Перемещайте компоненты по панелям, а сами панели — по форме, вы-
полняйте команды Bring To Front и Send To Back и наблюдайте при этом видимость
различных компонентов.

2.4.6.4 Поиск «пропавших» компонентов

Иногда бывает, что вы не можете найти на форме компонент, который, как вы
знаете, на ней присутствует. Это бывает по нескольким причинам. Например, если
вы используете метку тип TLabel, установив в ней свойство AutoSize (автоматиче-
ское изменение размера по размерам надписи) в true и стерев значение надписи
Caption, то горизонтальный размер метки уменьшается до нуля и ее не будет вид-
но на форме, пока во время выполнения приложения значение Caption не изме-
нится. Компонент может «пропасть» также, если он накрыт другим компонентом,
расположенным выше в Z-последовательности. Возможны и некоторые другие
причины, например, такой выбор цветов, что компонент сливается с фоном.

Найти «пропавший» компонент можно, выбрав его имя в выпадающем спис-
ке, расположенном вверху окна Инспектора Объектов. Этот список содержит все
компоненты, размещенные на форме. Если вы выберете в нем нужный компонент,
то на форме вокруг него появится рамка с маркерами, видимая даже в случае, если
компонент накрыт сверху какой-нибудь панелью или другим компонентом. При
этом в Инспекторе Объектов станут видны страницы свойств и событий найденно-
го компонента.

Если цель поиска заключалась в том, чтобы задать для компонента значения
каких-то свойств или обработчики событий, то больше вам ничего и не надо. Если
же вам все-таки надо добраться до компонента, накрытого другим компонентом
или панелью, то придется или временно сдвигать куда-то эти помехи, или выпол-
нить для них команду Send To Back, которая сдвинет их в низ Z-последовательно-
сти. По крайней мере, вы знаете, где расположен «беглец» и что надо сдвинуть,
чтобы его найти.

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

2.4.6.5 Работа с группой компонентов, выравнивание компонентов
по размеру и положению

На форме можно выделить группу компонентов, к которым применяется та
или иная операция. Выделение группы возможно двумя способами. Если компо-
ненты расположены непосредственно на форме и рядом друг с другом, то для выде-
ления группы достаточно обвести курсором рамку вокруг них, и все они окажутся
выделенными (рис. 2.25). Если компоненты группы расположены не непосредст-
венно на форме, а, например, на панели, то выделить их рамкой невозможно. Так
же невозможно выделить рамкой группу компонентов, расположенных в разных
местах формы. В этих случаях выделение производится иначе. Выделяйте нужные
компоненты курсором, нажав и не отпуская при этом клавишу Shift. Все компонен-
ты, выделенные таким образом, войдут в группу.