Шаг 15.
Состав класса TComponent

    На этом шаге мы рассмотрим свойства и методы класса TComponent.

Свойства класса TComponent
Методы класса TComponent



    Предком для всех компонентов библиотеки является класс TComponent. Он инкапсулирует наиболее общие свойства и методы компонентов, включая:

    Объекты типа TComponent не создаются. Этот класс используется как базовый при объявлении класса невизуального компонента, который может присутствовать в палитре компонентов и применяться в процессе проектирования.

Свойства класса TComponent

    Этот класс имеет небольшое количество свойств, которые представлены в таблице 1.

   
Таблица 1. Свойства класса TComponent
Свойство Описание
property ComObject: IUnknown; Защищенное свойство, возвращающее ссылку на интерфейс в компонентах, поддерживающих стандарт COM.
property ComponentCount: Integer; Число компонентов, которыми владеет данный компонент. Равно числу элементов в массиве Components. Может использоваться вместе с ComponentIndex.
property ComponentIndex: Integer; Индекс компонента в массиве Components. Нумерация элементов в массиве начинается с 0.
property Components [Index: Integer]: TComponent; Массив компонентов, которыми владеет данный компонент.
property ComponentState: TComponentState;
type TCоmponentState = set of (csLoading, csReading, csWriting, csDestroying, csDesigning);
Состояние компонента в процессе визуального проектирования (только для чтения). Эти состояния используются средой во время визуального проектирования, при загрузке/выгрузке компонентов из файлов ресурсов. Во время исполнения приложения множество состояний пусто. Во время выполнения не используется.
property ComponentStyle: TComponentStyle;
type TComponentStyle = set of (csInheritable, csCheckPropAvailcsSubComponent, csTransient);
Определяет множество флагов стиля компонента. В частности, стиль csInheritable указывает, что компонент может принадлежать форме.
property DesignInfo: Longint; Используется в среде Delphi при проектировании форм. В нем хранятся координаты верхнего левого угла компонента во время разработки. В приложениях не используется.
property property Name: TComponentName;
type TComponentName = string[63];
Имя компонента. Имя компонента не может быть пустой строкой; в модуле не может быть и двух компонентов с одинаковыми именами. Это не просто то имя, которое использует программист при обращении к свойствам методам компонента, а компилятор - при компиляции этих обращений. Компонент знает свое имя на этапе выполнения программы, но что еще более важно - на этапе визуального проектирования приложения (будем называть это еще этапом разработки).
property Owner: TComponent; Определяет владельца данного компонента. Форма является владельцем всех расположенных на ней компонентов. В свою очередь объект Application является владельцем всех форм. Когда освобождается память, занимаемая владельцем, автоматически освобождается память всех компонентов, которыми он владел. Свойство только для чтения.
property Tag: Longint; Позволяет "привязать" к каждому компоненту целое число. Значение этого свойства системой не используется, поэтому разработчик может использовать его по своему усмотрению.
property VCLComObject: Pointer; Используется только в среде Delphi-компонентов, поддерживающих стандарт COM.

    К оглавлению

   

Методы класса TComponent

    В классе TComponent определено большое количество методов. В таблице 2 приводятся только те из них, которые часто используются при работе с компонентами. Остальные используются для внутренних потребностей Delphi.

   
Таблица 2. Методы класса TComponent
Метод Описание
constructor Create(AOwner: TComponent); virtual; Вызов конструктора компонента.
destructor Destroy; override; Вызов деструктора компонента. Вместо этого метода лучше использовать методы Free или Release.
function FindComponent(const AName: string): TComponent; Ищет в списке Components компонент с заданным именем.
procedure FreeNotification (AComponent: TComponent); Гарантирует, что указанный в вызове компонент будет разрушен. Используется только по отношению к компонентам, расположенным на других формах. Для компонентов на текущей форме вызывается автоматически.
procedure InsertComponent (AComponent: TComponent); Добавление указанного компонента в конец списка компонента-владельца. При визуальном проектировании вызывается автоматически. Специально может потребоваться только при добавлении компонента в список другого владельца.
procedure RemoveComponent (AComponent: TComponent); Удаление указанного компонента из списка компонента-владельца. При визуальном проектировании вызывается автоматически. Специально может потребоваться только при удалении компонента из списка другого владельца.
procedure DestroyComponents; Удаляет все компоненты из списка.

    К оглавлению

    На следующем шаге мы рассмотрим состав класса TControl.




Свойства класса TComponent Методы класса TComponent




Предыдущий шаг Содержание Следующий шаг