948_______________________________________________Глава 15

Программно место компонента в Z-последовательности можно изменить мето-
дами BringToFront и SendToBack. На Z-последовательность влияют также методы
InsertControl и RemoveControl, добавляющие и удаляющие дочерние компонен-
ты, и изменение свойства компонентов Parent, меняющее родителя компонента.

Примеры

Пусть в приложении в классе формы определена некоторая функция

void   fastcall Func(TObject *Sender);

которая обрабатывает объект, передаваемый в нее через аргумент Sender. Это мо-
жет быть какая-то процедура изменения размеров и места расположения, окраши-
вания, перестановок и т.д. Например, она может содержать оператор

((TControl *)Sender)->Left += 10;

сдвигающий объект на 10 пикселей вправо. Тогда обработать этой процедурой все
дочерние компоненты, например, панели Panell можно с помощью оператора:

forfint i = 0; i < Panell->ControlCount; i++)
Func(Panell->Controls[i] ) ;

Если надо обработать только какую-то группу компонентов с идущими по по-
рядку индексами и известны их начальный и конечный индексы Indl и Ind2, то
соответствующий оператор может иметь вид

forfint i = Indl; i <= Ind2; i++)
Func(Panell->Controls[i]) ;

Задать нужную последовательность индексов можно описанными выше спосо-
бами в процессе проектирования или во время выполнения приложения.

Выяснить истинную последовательность индексов для той же панели Panell
можно, например, оператором:

forfint i = 0; i < Panell->ControlCount; i++)

ShowMessage("Ind = "+IntToStr(i) + ' ' + Panell->Controls[i]->Name);

ControlState

Множество значений, характеризующих состояние компонента во время вы-
полнения приложения

Класс TControl

Определение

enum Controls 7 { csLButtonDown, csClicked, csPalette,
csReadingState, csAlignmentNeeded,
csFocusing, csCreating, csPaintCopy,
csCustomPaint, csDestroyingHandle, csDocking );

typedef Set<Controls_7, csLButtonDown, csDocking>TControlState;

_property TControlState ControlState

Описание

Свойство ControlState определяет различные условия, действующие на дан-
ный экземпляр компонента, например, щелчок мыши или необходимость вырав-
нивания компонента. Свойство используется в основном при создании новых клас-
сов, производных от TControl. Свойство является множеством типа Set и может
содержать следующие флаги: