Использование встроенных классов
На первых порах разработчика программ интересуют не все классы, а компоненты. Компоненты – неотъемлемая часть прикладной программы. Они формируют основу интерфейса пользователя. Компоненты для разработки интерфейса и системные компоненты соответственно называются визуальными и невизуальными. Невизуальные компоненты используются для реализации логической части приложения и функциональных возможностей системной составляющей (рис. 1). Визуальные компоненты входят в палитру компонентов и позволяют строить пользовательский интерфейс приложения.
ИЕРАРХИЯ КЛАССОВ
Delphi имеет большое количество встроенных классов, которые образуют иерархическое дерево (рис. 8, слева).
Рис. 8. Фрагмент иерархии классов.
Каждый класс обязательно является наследником другого класса, за исключением TObject. TObject является предком для всех классов. Предком для всех компонентов является класс TComponent. Иерархию и отдельные элементы классов можно увидеть с помощью Browse Objects (рис. 8), окно которого вызывается из меню: View–Browse.
Каждый класс обладает набором своих методов, свойств, и полей, да еще наследует массу подобных элементов. Поэтому ориентироваться во всех возможностях класса очень трудно. Помогает то обстоятельство, что многие свойства и методы имеют много общего и называются одинаково.Базовые встроенные классы следует рассматривать как некую библиотеку функций и возможностей, которые к тому же можно наследовать при разработке собственных классов. Рассмотрим кратко назначение некоторых основных компонентов в иерархии классов.
Класс TObject реализует функции, которые обязательно будут выполняться в процессе построения любого объекта. Следует отметить, что круг общих для всех классов операций невелик. В первую очередь – это создание экземпляра класса и его уничтожение. Эти операции, например, для размещенных на форме объектов выполняются автоматически. Рассмотрим еще одну функцию данного класса. Каждый объект должен содержать некоторую информацию о себе, которая используетсяприложением и средой разработки. Класс TObject содержит ряд методов, обеспечивающих представление этой информации в потомках.
Основное назначение класса TPersistent (в переводе означает: устойчивый, постоянный) заключается в возможности выполнения операции копирования содержимого одного объекта (Source) в другой (Self). Self - специальная переменная в объекте-приемнике. При этом используется метод Assign – простым присваиванием содержимое не копируется, а замещается с уничтожением внутренней структуры объекта-приемника.
Класс TComponentиспользуется в качестве основы для создания невизуальных компонентов и реализует основные механизмы, которые обеспечивают функционирование любого компонента.
Вслед за классом TComponent в иерархии классов (рис. 8) располагаетсягруппа из трех классов, которые обеспечивают создание различных визуальных компонентов. Визуальные компоненты – это разнообразные стандартные для Windows и специальные элементы управления.
Понятно, что визуальные компоненты должны уметь отобразить себя на экране монитора и реагировать на целый ряд новых событий – реакция на мышь, клавиатуру, движение курсора и т.д. Для этого в них встроен специальный механизм, обеспечивающий взаимодействие компонентов с графической подсистемой операционной среды (GUI).
Базовым для всех визуальных компонентов является класс TControl, который инкапсулирует механизмы отображения компонентов на экране. В этом классе вводится множество новых свойств и методов. Для определения местоположения и размеров визуального компонента введены два свойства, с помощью которых задаются координаты левого верхнего угла: Top (верхний) и Left(левый), - а также два свойства, задающие размеры клиентской области: Height (высота) и Width(ширина). Значения свойств задаются в пикселах. Для определения местоположения компонента используется система координат рабочей области владельца (Owner – владелец) данного компонента, например, формы. Имеется и ряд других свойств, определенных в компоненте TControl.
Далее в иерархии классов стоит очень важный визуальный компонент TWinControl, который обеспечивает использование в Delphi оконных элементов управления. Главное отличие оконного элемента управления от других элементов – наличие дескриптора окна hWnd.Дескриптор окна – это специальный идентификатор, присваиваемый операционной системой всем объектам, которые должны обладать свойствами окна. Если элемент управления имеет дескриптор окна, то он должен уметь выполнять следующие операции:
- получать и передавать фокус управления во время выполнения приложения:
- воспринимать управляющие воздействия от мыши и клавиатуры:
- уметь размещать на себе другие элементы управления.