故障通过新RTTI [D2010]索引属性打
-
18-09-2019 - |
题
ShowMessage(TRttiContext.Create.GetType(TStringList)
.GetProperty('Strings').ToString);
如.GetProperty上属性返回nil像“字符串”,“对象”,“值”(用在索引的)以上代码失败。我认为这是已知的限制和问题是,如果有任何的方式来访问这些索引属性(优选地没有掉下回旧RTTI utils的)。
解决方案
索引属性没有RTTI,但底层字段做。所以,你可以直接通过RTTI访问TStringList.FList。要小心,虽然,因为这涉及到原始指针,并确保你不会超越Count属性。你可以做类似的事情与其他类。
其他提示
有在RTTI间隙。索引属性之一。
但是,当你没有得到的属性名称,为什么您尝试访问它们? ;-)当你知道有这样的属性,你可以尝试投来代替。
您没有得到RTTI为典型的方法参数
procedure MyProc(const AParam: array of AType)
也。
有人知道更多的元素是我们无法获得RTTI?
不隶属于 StackOverflow