- •Иерархия компонентов.
- •Собственники компонентов
- •Элементы управления.
- •Компоненты (tComponent)
- •Оконные не оконные
- •Родительские и дочерние компоненты.
- •Объектно-событийное программирование. События
- •Реакции на события
- •Программирование реакции на событие
- •Особенности реализации событий
- •Делегирование событий
- •Виды событий
- •Диалоги. Работа с файлами. Открытие и закрытие файлов с использованием стандартных диалоговых окон.
- •TOpenDialog и tSaveDialog – диалоги открытия и сохранения файлов (страница dialogs )
- •Создание и использование форм, их разновидности.
- •Шаблоны форм
- •Программы со многими формами
- •Модульный принцип построения программ.
- •Основные типы файлов проекта.
- •Структура головного файла проекта.
Иерархия компонентов.
Когда имеется в виду визуальный объект, то говорят о компоненте. Компоненты можно визуально редактировать в ходе разработки программы, а объекты – нет. Исключение составляют объекты Application и Screen. Формально они также являются компонентами, но доступ к ним производится исключительно из кода программы, т. е. не визуально.
Например, Button – это визуальный объект, графически представленный (значком) в Палитре компонентов. Данный объект попадает в категорию компонентов.
Невизуальные объекты доступны исключительно через программный код, и их свойства можно редактировать только с помощью кода.
Компонентами в Delphi называются потомки класса TComponent.
Компонент – это объект, свойства которого можно изменить во время разработки при помощи инспектора объектов. Все компоненты Delphi порождены от класса TComponent, в котором инкапсулированы самые общие свойства и методы компонентов. Предком класса TComponent является класс TPersistent, который произошел непосредственно от базового класса TObject.
Класс TComponent служит базой для создания как видимых, так и невидимых компонентов. Большинство видимых (визуальных) компонентов происходит от класса TControl. Два наследника этого класса – TWinControl и TGraphicControl определяют две группы компонентов:
имеющих оконный ресурс(TWinControl и его потомки)
не имеющих этого ресурса(TGraphicControl и его потомки)
Оконный ресурс – это специальный ресурс Windows, предназначенный для создания и обслуживания окон.
Только оконные компоненты способны получать и обрабатывать сообщения Windows.
Оконный компонент в момент своего создания обращается к Windows с требованием выделения оконного ресурса и, если требование удовлетворено, получает так называемый дескриптор окна. TWinControl и его потомки хранят дескриптор окна в свойстве Handle. Потомки TGraphicControl не требуют от Windows дефицитного оконного ресурса, но они и не могут получать и обрабатывать Windows – сообщения. Управляет такими компонентами оконный компонент – владелец, например, TForm.
Оконные элементы управления: TAnimate, TBitBtn, TButton, TCheckBox, TComboBox, TEdit, TForm, TGroupBox, TListBox, TMemo, TPanel, TRadioButton, TScrollBar и т.д.
Неоконные управляющие компоненты не основаны на окнах. Они очень важны не только по своему назначению, но и с точки зрения экономии системных ресурсов.
Неоконными называются элементы управления, которые не могут становиться активными, не могут содержать другие элементы управления и не имеют дескриптора окна.
Неоконные элементы управления происходят от абстрактного базового класса TGraphicControl. Неоконные элементы управления: TLabel, TImage, TSpeedButton, TPaintBox, TShape и т.д.
Имена и собственники компонентов.
Имена компонентов.
Рассмотрим описание класса TComponent. Класс TComponent включает в себя свойства и методы, общие для всех компонентов.
Свойство
property Name:TComponentName;
type TComponentName=String; //Delphi 32
type TComponentName=String[63]; //Delphi
определяет имя компонента. Имя компонента строится по тем же правилам, что и имена любых других объектов программирования – констант, переменных, подпрограмм и т.д.: оно представляет собой правильный идентификатор и должно быть уникальным в области своей видимости в программе. Так как компоненты помещаются на форму средой Delphi, каждый компонент автоматически получает создаваемое средой имя, совпадающее с именем своего класса (без начальной буквы T) и дополненное числовым суффиксом: Form1, Labеl2, RichEdit2 и т.д.