在运行时,有没有一种方法可以找到所有从特定基类继承的类?
例如,假设有一个类:
TLocalization = class(TObject)
...
public
function GetLanguageName: string;
end;
或者假装有一个类:
TTestCase = class(TObject)
...
public
procedure Run; virtual;
end;
或者假装有一个类:
TPlugIn = class(TObject)
...
public
procedure Execute; virtual;
end;
或者假装有一个类:
TTheClassImInterestedIn = class(TObject)
...
public
procedure Something;
end;
在运行时,我希望能够找到所有继承自
TTestCase
的类,以便我可以对它们进行处理。可以通过查询RTTI来获取这样的信息吗?
或者:在Delphi中有一种方法可以遍历每个类吗?然后我可以简单地调用:
RunClass: TClass;
if (RunClass is TTestCase) then
begin
TTestCase(RunClass).Something;
end;