Отобразить TRttiProperty в эквивалент определения класса - PullRequest
3 голосов
/ 14 марта 2012

Мне интересно, возможно ли ссылаться на определение класса напрямую с целью использования его в сочетании с RTTI (сопоставить свойство с TRttiProperty и т. Д.).

Например,

Я бынравится использовать TMyClass.MyProperty в качестве TRttiProperty, без необходимости разрешать его с помощью имени / строки, это сохранит мой код и целостность компилятора, поскольку строковые переменные могут быть написаны с ошибками и т. д.

Спасибо

1 Ответ

5 голосов
/ 14 марта 2012

Предполагая, что вы хотите сделать что-то вроде этого

 P:=TRttiProperty(TMyClass.MyProperty);

или написать такую ​​функцию

function GetPropertyInfo(P: reference to property):TRttiProperty;

Это невозможно, для этого вам потребуется, какой Delphi имеетподдержка ссылок на недвижимость.Таким образом, единственный доступный (доступный) к свойству класса единственный способ использовать его имя через строку.

...