Родительские и дочерние компоненты.
В библиотечном модуле Controls описан класс TControl и его потомок TWinControl. Как уже отмечалось, некоторые из наследников TControl обладают дескрипторами окон и способны получать и обрабатывать Windows – сообщения, другие окон не имеют, но обязательно включаются в состав оконных компонентов, которые управляют ими, согласуясь с требованиями (сообщениями) Windows. Оконные элементы управления обладают специальной оконной функцией, в которую Windows посылает управляющие сообщения (например, извещения о манипуляции пользователя с мышью или о нажатии им клавиш клавиатуры). Такие элементы управления называются родительскими, а связанные с ними неоконные компоненты – дочерними.
Обязательным требованием Windows является визуальная синхронизация дочерних компонентов: они не могут выходить из границ своего родителя и появляются и исчезают вместе с ним. Иными словами, родитель с дочерними компонентами рассматривается Windows как единое целое. Класс TControl определяет свойство Parent, которое содержит ссылку на родительский компонент:
Property Parent: TWinControl;
Внимание! Это свойство не следует путать с собственником Owner:
Owner создал компонент (не обязательно видимый), а Parent управляет видимым компонентом.
Поскольку конструктор TComponent.Create не изменяет Parent (в родительском классе TComponent такого свойства нет), то при создании видимых компонентов на этапе прогона программы это свойство необходимо изменять программно. Например, следующий обработчик события OnCreate формы Form1 вставит надпись «Дочерний элемент» в левый верхний угол формы:
procedure TForm1.FormCreate(Sender: TObject);
var
Label1:TLabel;
begin
Label1:= TLabel.Create(Self);
Label1.Parent:=Self;
Label1.Caption:='Дочерний элемент';
end;
Если убрать оператор
Label1.Parent:=Self;
то метка Label1 никогда не узнает о том, что пришла пора прорисовать себя на экране и ее текст не будет виден. Наоборот, изменение свойства Parent подключает метку к списку дочерних элементов формы, и оконная функция формы обратится к нужному методу метки, чтобы заставить ее появиться на экране в момент появления самой формы.
- Объектно-ориентированный анализ
- Объектно-ориентированное программирование.
- Объектно-ориентированное проектирование.
- Основные понятия объектно-ориентированного проектирования.
- Классы и объекты в Object Pascal.
- Важнейшие принципы объектно-ориентированного программирования.
- Составляющие класса.
- Объекты
- Создание и уничтожение объектов.
- Наследование конструкторов и деструкторов.
- Свойства и инкапсуляция.
- Статические методы.
- Полиморфизм. Виртуальные и динамические методы.
- Абстрактные методы.
- Перекрытие виртуальных и динамических методов.
- Как устроен объект изнутри
- Перезагрузка методов.
- Задача с использованием полиморфизма
- Области видимости.
- Создание класса комплексных чисел.
- Создание класса векторов
- Объект-список
- Модуль по работе со списками
- Основная программа по работе с объектами-списками
- Система программирования Delphi
- Терминология Delphi.
- Первые шаги визуального программирования в среде Delphi.
- Иерархия компонентов.
- Собственники компонентов
- Элементы управления.
- Компоненты (tComponent)
- Оконные не оконные
- Родительские и дочерние компоненты.
- Объектно-событийное программирование. События
- Реакции на события
- Программирование реакции на событие
- Особенности реализации событий
- Делегирование событий
- Виды событий
- Диалоги. Работа с файлами. Открытие и закрытие файлов с использованием стандартных диалоговых окон.
- TOpenDialog и tSaveDialog – диалоги открытия и сохранения файлов (страница dialogs )
- Компонент класса tform
- Создание и использование форм
- Шаблоны форм
- Программы со многими формами
- Модульный принцип построения программ.
- Программные файлы. Основные типы файлов проекта. Простейшее приложение.
- Структура головного файла проекта.