首页 > 解决方案 > 检查一个类是否有抽象函数

问题描述

我想获取从特定基类继承的类列表。

使用 RTTI,我已经可以检查了。但我也想检查这些类中的每一个是否抽象。

我在这里找到了一个解决方案:如何检查 Delphi 类是否被声明为抽象类?

但是,对于 line if GetVirtualMethod(c, i) = @_AbstractError then,我收到@_AbstractError一个未知标识符的错误。

所以我的问题是,如何获取AbstractError过程的地址来检查我的类的任何虚拟方法是否指向该地址?当我查看System.pas文件时,我可以清楚地看到_AbstractError里面有。

或者,是否有另一种方法来检查给定方法是实现还是抽象?

我正在使用 Delphi XE6,并为方法GetVirtualMethodCount()GetVirtualMethod()上面引用的解决方案安装了 JCL。

标签: delphivirtual-functionsdelphi-xe6abstract-function

解决方案


推荐阅读