gpt4 book ai didi

delphi - 迭代成员变量

转载 作者:行者123 更新时间:2023-12-03 15:02:03 25 4
gpt4 key购买 nike

有没有办法在 D2010 中迭代对象的成员变量而无需事先知道它们是什么?

最佳答案

是的,如果您使用的是 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;

必要的对象可以在RTTI单元中找到。

在 Delphi 的早期版本中,有一些更有限的 RTTI 可以为您提供有关某些属性和方法的一些信息,但它不能做那么多事情。

关于delphi - 迭代成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4466629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com