32 Урока Borland Delphi

         

и 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
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий