Собственники компонентов
Для компонентов предусмотрены отношения собственности. Любой компонент Delphi является собственностью другого компонента и, в свою очередь, может быть владельцем одного или нескольких компонентов. Это позволяет существенно упростить процесс управления ими.
Владелец назначается компоненту при вызове конструктора:
Constructor Create (AOwner: TComponent);virtual;
Указатель на владельца хранится в свойстве компонента:
property Owner:TComponent read FOwner;
Это свойство доступно только для чтения.
Список всех подчиненных компонентов определяет свойство:
property Components[Index: Integer]:TComponent;
Если вызван конструктор компонента, то он автоматически вызывает конструкторы всех подчиненных ему компонентов. Поэтому и нет явных вызовов конструкторов объектов в текстах кодов, созданных во время визуального программирования. Напомним, что связи между компонентами, помещенными в окно формы Form1, записаны в файле формы, т.е. любой компонент, попавший при визуальном программировании в ваше приложение из палитры компонентов включается в определенную иерархию владельцев и подчиненных. Иерархия эта замыкается на форме Form1 из класса TForm. Для всех ее составных частей конструкторы и деструкторы вызываются автоматически, незримо для программиста.
Кто создает и уничтожает форму?
Это делает приложение, т. е. объект из класса TApplication. В файле проекта визуального приложения можно увидеть вызов метода:
Application.CreateForm;
Деструктор компонента при визуальном программировании также автоматически вызывает деструкторы всех подчиненных, а потом вычеркивает ненужный компонент из списка компонентов своего владельца.
Если же компоненты используются во время выполнения приложения, как простые объекты вне этой схемы, то нужно писать вызовы конструкторов и деструкторов в явном виде, а также самостоятельно решать кто из них чей.
- Объектно-ориентированный анализ
- Объектно-ориентированное программирование.
- Объектно-ориентированное проектирование.
- Основные понятия объектно-ориентированного проектирования.
- Классы и объекты в Object Pascal.
- Важнейшие принципы объектно-ориентированного программирования.
- Составляющие класса.
- Объекты
- Создание и уничтожение объектов.
- Наследование конструкторов и деструкторов.
- Свойства и инкапсуляция.
- Статические методы.
- Полиморфизм. Виртуальные и динамические методы.
- Абстрактные методы.
- Перекрытие виртуальных и динамических методов.
- Как устроен объект изнутри
- Перезагрузка методов.
- Задача с использованием полиморфизма
- Области видимости.
- Создание класса комплексных чисел.
- Создание класса векторов
- Объект-список
- Модуль по работе со списками
- Основная программа по работе с объектами-списками
- Система программирования Delphi
- Терминология Delphi.
- Первые шаги визуального программирования в среде Delphi.
- Иерархия компонентов.
- Собственники компонентов
- Элементы управления.
- Компоненты (tComponent)
- Оконные не оконные
- Родительские и дочерние компоненты.
- Объектно-событийное программирование. События
- Реакции на события
- Программирование реакции на событие
- Особенности реализации событий
- Делегирование событий
- Виды событий
- Диалоги. Работа с файлами. Открытие и закрытие файлов с использованием стандартных диалоговых окон.
- TOpenDialog и tSaveDialog – диалоги открытия и сохранения файлов (страница dialogs )
- Компонент класса tform
- Создание и использование форм
- Шаблоны форм
- Программы со многими формами
- Модульный принцип построения программ.
- Программные файлы. Основные типы файлов проекта. Простейшее приложение.
- Структура головного файла проекта.