delphi - 通过新 RTTI 处理索引属性时遇到问题 [D2010]

标签 delphi delphi-2010 rtti

  ShowMessage(TRttiContext.Create.GetType(TStringList)
    .GetProperty('Strings').ToString);

以上代码失败,因为 .GetProperty 在“字符串”、“对象”、“值”(带有索引器的属性)等属性上返回 nil。我认为这是一个已知的限制,问题是是否有任何方法可以访问这些索引属性(最好不要回退到旧的 RTTI 实用程序)。

最佳答案

索引属性没有 RTTI,但基础字段有。所以你可以直接通过RTTI访问TStringList.FList。但要小心,因为这涉及原始指针,并确保不超出 Count 属性。您可以对其他类执行类似的操作。

关于delphi - 通过新 RTTI 处理索引属性时遇到问题 [D2010],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1685392/

相关文章:

delphi - 如何通过 IdHTTP 检查与 jsp 站点的连接

delphi - 如何使用 RTTI 将事件处理程序分配给事件属性?

delphi - 如何使用接口(interface)的 safecall 函数方法进行 RTTI 调用?

delphi - 如何检查后代类是否覆盖所有虚拟方法?

multithreading - 为什么循环变量的值不存储在动态创建的AnonymousThread中

html - 我如何在 TWebBrowser 中以 HTML 格式显示 rss 提要的输出?

delphi - Delphi 2010 的 QT 绑定(bind)

visual-studio-2010 - 通过注入(inject)的 Delphi dll 启用 __fastcall 来 Hook 在 MSVC++ 上制作的应用程序

delphi - Delphi:使用枚举器按类类型过滤TList <T:class>吗?

c++ - 如何从 type_info 获取模板参数的类型