Embarcadero Delphi
Использование RTTI в Delphi
Поиск…
Вступление
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