и OnDblClick, во многом похожи
и OnDblClick, во многом похожи друг на друга.
Открытость среды Delphi позволяет получать и оперировать информацией особого рода, называемой информацией периода выполнения (RTTI - run-time type
information). Эта информация организована в виде нескольких уровней.
Верхний уровеньRTTI представлен как средство проверки и приведения типов с использованием ключевых слов is
и as.
Ключевое слово is
дает программисту возможность определить, имеет ли данный объект требуемый тип или является одним из наследников данного типа, например, таким образом:
if MyObject
is TSomeObj then
...
Имеется возможность использовать RTTI и для процесса приведения объектного типа, используя ключевое слово as:
if MyObject is TSomeObj then
(MyObject
as TSomeObj).MyField:=...
что эквивалентно:
TSomeObj(MyObject).MyField:=...
Средний уровень
RTTI использует методы объектов и классов для подмены операций as
и is
на этапе компиляции. В основном, все эти методы заложены в базовом классе TObject, от которого наследуются все классы библиотеки компонент VCL. Для любого потомка TObject
доступны, в числе прочих, следующие информационные методы:
-
ClassName
- возвращает имя класса, экземпляром которого является объект
-
ClassInfo
- возвращает указатель на таблицу с RTTI, содержащей информацию о типе объекта, типе его родителя, а также о всех его публикуемых свойствах, методах и событиях
-
ClassParent
- возвращает тип родителя объекта
-
ClassType
- возвращает тип самого объекта
-
InheritsFrom
- возвращает логическое значение, определяющее, является ли объект потомком указанного класса
-
InstanceSize
- возвращает размер объекта в байтах.
Эти методы могут использоваться в Вашем коде напрямую.
Нижний уровень
RTTI определяется в дельфийском модуле TypInfo
и представляет особый интерес для разработчиков компонент. Через него можно получить доступ к внутренним структурам Delphi, в том числе, к ресурсам форм, инспектору объектов и т.п.
Итак, доступ к информации периода выполнения в Delphi позволяет динамически получать как имя объекта, находящегося на форме, так и название класса, которому он принадлежит (и еще много другой полезной информации; но об этом - в дальнейших уроках). Для этого используется свойство Name, имеющееся у любого класса-наследника TComponent
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий