Поиск…


Вступление

Delphi предоставила информацию о времени выполнения (RTTI) более десяти лет назад. Однако даже сегодня многие разработчики не в полной мере осознают свои риски и выгоды.

Короче говоря, Runtime Type Information - это информация о типе данных объекта, который устанавливается в память во время выполнения.

RTTI предоставляет возможность определить, является ли тип объекта определенным классом или его потомком.

замечания

RTTI IN DELPHI - ОБЪЯСНЕННЫЙ

Информация о времени выполнения в Delphi - может ли она что-нибудь для вас делать? статья Брайана Лонга дает большое представление о возможностях RTTI Delphi. Брайан объясняет, что поддержка RTTI в Delphi была добавлена ​​прежде всего для того, чтобы среда разработки могла выполнять свою работу, но разработчики также могут воспользоваться ею для достижения определенных упрощений кода. В этой статье также представлен большой обзор классов RTTI, а также несколько примеров.

Примеры включают: чтение и запись произвольных свойств, общие свойства без общего предка, копирование свойств из одного компонента в другой и т. Д.

Основная информация о классе

В этом примере показано, как получить родословную компонента с использованием свойств ClassType и ClassParent . Он использует кнопку Button1: TButton и список ListBox1: TListBox на форме TForm1 .

Когда пользователь нажимает кнопку, в поле списка добавляется имя класса кнопки и имена его родительских классов.

procedure TForm1.Button1Click(Sender: TObject) ;
var
  ClassRef: TClass;
begin
   ListBox1.Clear;
   ClassRef := Sender.ClassType;
   while ClassRef <> nil do
   begin
     ListBox1.Items.Add(ClassRef.ClassName) ;
     ClassRef := ClassRef.ClassParent;
   end;
end;

Окно списка содержит следующие строки после нажатия пользователем кнопки:

  • TButton
  • TButtonControl
  • TWinControl
  • TControl
  • ТСотропепЬ
  • TPersistent
  • TObject


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow