Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Структура справочника и соглашения >> Информация о типе времени выполнения (RTTI). >> Методы класса.
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Методы класса.


С указателем на класс тесно связано понятие методов класса. Такие методы можно вызывать без создания экземпляра объекта ? с указанием имени класса, в котором они описаны. Перед описанием метода класса нужно поставить зарезервированное слово class:

type
══TMyObject = class(TObject)
════class function GetSize: string;
══end;
var
══MyObject: TMyObject;
══AString: string;
begin
══AString := TMyObject.GetSize;
══MyObject := TMyObject.Create;
══AString := MyObject.GetSize;
end.

Разумеется, методы класса не могут использовать значения, содержащиеся в полях: ведь экземпляра-то не существует! Возникает вопрос: для чего тогда нужны такие методы?

Важнейшие методы класса определены в самом TObject: они как раз и позволяют, не углубляясь во внутреннюю структуру RTTI, извлечь оттуда практически всю необходимую информацию.

В следующем примере AMyObjRef ? указатель на класс; он по очереди указывает на TObject и TMyObject (то есть на их структуры RTTI). Посредством него вызывается функция класса ClassName, которая извлекает имя класса из его RTTI. Обратите внимание на то, что эту функцию не нужно переопределять для каждого порожденного класса:

type
══TMyObject = class;
══TMyObjClass = class of TObject;
var
══AMyObjRef : TMyObjClass;
══s: string;
begin
══AMyObjRef := TObject;
══s := AMyObjRef.ClassName; { s := 'TObject'}
══AMyObjRef := TMyObject;
══s:=AMyObjRef.ClassName; {s := "TMyObject"}
end.

Кроме того, пример использования методов класса вы найдете, читая в следующей главе о классе TPicture. Этот класс представляет собой контейнер, в который можно загрузить либо стандартную картинку, либо картинку определенного программистом типа. Новый тип нужно зарегистрировать методом класса TPicture; в этом случае создаваемый экземпляр TPicture будет способен работать и с этим типом.



[Назад]    [Содержание ]    [Вперед]

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017