是的,如果您使用的是 Delphi 2010 或更高版本。您可以使用扩展 RTTI 来获取有关对象的字段、方法和属性的信息。简单版本:
procedure GetInfo(obj: TObject);
var
context: TRttiContext;
rType: TRttiType;
field: TRttiField;
method: TRttiMethod;
prop: TRttiProperty;
begin
context := TRttiContext.Create;
rType := context.GetType(obj.ClassType);
for field in rType.GetFields do
;//do something here
for method in rType.GetMethods do
;//do something here
for prop in rType.GetProperties do
;//do something here
end;
Run Code Online (Sandbox Code Playgroud)
可以在单元中找到必要的对象RTTI。
在 Delphi 的早期版本中,有一些更有限的 RTTI 可以为您提供有关某些属性和方法的一些信息,但它不能做那么多事情。