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