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?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top