Класс TComponent
Очень важное свойство:
type TComponentState = set of (csLoading, csReading, csWriting, csDestroying, csDesigning, csAncestor, csllpdating, csFixups, csFreeNotification, cslnline, csDesignlnstance); property ComponentState: TComponentState;
Дает представление о текущем состоянии компонента. В табл. 2.2 описаны возможные состояния компонента. Состояние может измениться в результате получения компонентом некоторого сообщения, действий разработчика, выполнения акции и т. д. Это свойство активно используется средой разработки.
Таблица 2.2. Возможные состояния компонента.
Состояние | Описание |
---|---|
csLoading | Устанавливается при загрузке компонента из потока |
csReading | Устанавливается при чтении значений свойств из потока |
csWriting | Устанавливается при записи значений свойств в поток |
csDestroying | Устанавливается при уничтожении компонента |
csDesigning | Состояние разработки. Устанавливается при работе с формой во время разработки |
csAncestor | Устанавливается при переносе компонента на форму. Для перехода в это состояние должно быть уже установлено состояние csDesigning |
csUpdating | Устанавливается при изменении значений свойств и отображения результата на форме-владельце. Для перехода в это состояние должно быть уже установлено состояние csAncestor |
CsFixups | Устанавливается, если компонент связан с компонентом другой формы, которая еще не загружена в среду разработки |
csFreeNotification | Если это состояние устанавливается, другие компоненты, связанные с данным, уведомляются о его уничтожении |
cslnline | Определяет компонент верхнего уровня в иерархии. Используется для обозначения корневого объекта в разворачивающихся свойствах |
csDesignlnstance | Определяет корневой компонент на этапе разработки |
Для обеспечения работы механизма действий (см. гл. 8) предназначен метод:
function ExecuteAction(Action: TBasicAction): Boolean; dynamic;
Он вызывается автоматически при необходимости выполнить акцию, предназначенную для данного компонента.
На уровне класса TComponent обеспечена поддержка СОМ-интерфейсов IUnknown и IDispatch.
Через свойство:
property ComObject: IUnknown;
Вы можете обеспечить применение методов этих интерфейсов.
Таким образом, класс TComponent имеет все для использования в качестве предка, для создания собственных невизуальных компонентов.