我有一些关于Delphi-RTTI(抽象类,密封类等)的麻烦

时间:2014-05-27 13:28:20

标签: delphi rtti

我正在尝试为类浏览开发简单的toolsapi插件。我可以找到所有vcl对象,我可以使用RTTI在备忘录中显示它的实现(代码定义)。

但是,我有一些麻烦;

- 如何判断班级是否抽象   - 我如何确定课程是否已密封   - 如何在一个具有可见性的类中找到嵌套类。

我正在使用Delphi XE5和RTTI(TRttiContext)。

我在我的项目源中使用了foolowing定义。

{$STRONGLINKTYPES ON}
{$RTTI EXPLICIT METHODS([vcPrivate, vcProtected, vcPublic, vcPublished]) PROPERTIES([vcPrivate, vcProtected, vcPublic, vcPublished]) FIELDS([vcPrivate, vcProtected, vcPublic, vcPublished])}

由于

1 个答案:

答案 0 :(得分:4)

使用RTTI无法检索前两项内容(正如您在方法过载或覆盖时无法检索)。

要检索是否嵌套了类型,可以解析其名称,因为嵌套类型始终包含外部类型的名称。但是你再没有关于嵌套类型可见性的信息,因为RTTI不知道嵌套。