Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторки 1-6 по Delphi.pdf
Скачиваний:
39
Добавлен:
08.04.2015
Размер:
1.09 Mб
Скачать

Языки программирования

ЛР4. Опорные классы VCL

Задача этой лабораторной работы — дать студенту общее представление о концепции построения библиотеки и о ключевых классах VCL. В результате вы станете владеть методологией, которая упростит изучение любого класса VCL, и позволит на профессиональном уровне применять компоненты Delphi в своих проектах.

На рис. 4.1 представлен фрагмент иерархии наследования классов Delphi. Здесь вы обнаружите наиболее важные классы VCL. Почему поставлен акцент на слово "важные"? Потому, что именно эти классы определяют основные родовые черты своих многочисленных потомков. Изучив опорные классы VCL, мы получим представление о ключевых особенностях всех классов библиотеки.

Класс TObject

К задачам, решаемым классом TObject, в первую очередь стоит отнести:

создание, поддержку и уничтожение объекта; распределение, инициализацию и освобождение памяти, необходимой для этого объекта;

возврат всей информации об экземпляре класса, в том числе данных RTTI об опубликованных свойствах и методах объекта;

поддержку взаимодействия объекта с внешней средой с помощью сообщений и интерфейсов.

Наиболее важными методами для любого из классов VCL считаются конструктор и деструктор — они управляют существованием объекта.

constructor Create; //создание объекта destructor Destroy; //разрушение объекта

Пока мы видим наиболее простое объявление конструктора и деструктора, в ряде более поздних классов методы усложнятся и дополнятся параметрами.

В составе класса TObject имеется ряд полнофункциональных обычных методов и методов класса (class function), позволяющих получить подробную метаинформацию о классе. Ключевые методы TObject представлены в табл. 4.1.

 

Таблица 4.1. Получение сведений о классе

 

 

Метод

Описание

 

 

class function ClassName: string;

Функции возвратят текстовую строку с названием

 

класса

class function UnitName: string;

Имя модуля, в котором описан класс

function ClassType: TClass; inline;

Возвратит описание класса

class function ClassNameIs(const Name:

Проверка, является ли объект экземпляром класса

string): Boolean;

Name

class function InheritsFrom(AClass:

Проверка, является ли объект потомком класса AClass

TClass): Boolean;

 

class function ClassParent: TClass;

Возвратит непосредственного предка объекта

class function MethodName(Address:

Возвращает имя метода по указателю. Метод должен

Pointer): string;

быть опубликован в секции published

38

СКФУ Кафедра компьютерной безопасности

КафедраСКФУ

 

 

 

 

 

TObject

 

 

 

 

 

 

 

 

 

(System)

 

 

 

компьютерной

 

Exception

TList

 

TPersistent

...

TStream

TEnumerable<T>

 

...

Generics.Collectio

 

 

(SysUtils)

(Classes)

(Classes)

(Classes)

 

 

 

 

ns

 

 

 

 

 

 

 

 

 

 

 

Искл. ситуации

 

Списки

TStrings

TComponent

TCollection

Потоки

Шаблоны

 

 

 

 

 

 

 

 

 

EAbort

 

TObjectList

(Classes)

(Classes)

(Classes)

TFileStream

TStack<T>

 

 

 

 

 

 

безопасности

.4.Рис

(SysUtils)

 

(Contnrs)

 

 

 

(Classes)

 

EExternal

TComponentList

...

 

...

TMemoryStream

TList<T>

 

 

...

 

...

 

 

(SysUtils)

 

(Contnrs)

 

 

 

(Classes)

 

 

 

...

 

...

Наборы строк

 

Коллекции

 

 

 

 

 

 

 

 

 

 

 

.1

...

 

...

 

 

 

...

...

 

Опорные

 

 

 

 

 

 

...

 

 

 

 

 

TControl

...

TFmxObject

 

 

 

 

 

 

 

(Controls)

 

(FMX.Types)

 

 

 

классы

TWinControl

TGraphicControl

TCommonDialog

TMenu

 

 

 

 

 

VCL

(Controls)

(Controls)

(Dialogs)

(Menus)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

...

...

...

 

 

 

 

 

 

 

 

Элементы управления

Компоненты FMX для кроссплатформенных приложений FireMonkey

39

программирования Языки