【问题标题】:How to get access field in Delphi using RTTI?如何使用 RTTI 在 Delphi 中获取访问字段?
【发布时间】:2009-10-12 07:44:16
【问题描述】:

考虑以下几点:

TFieldType = class
  fValue: string;
end;

TMainClass = class
private
  Ffield: TFieldType;
public
  function GetValue: string;
end;

在 TMainClass.GetValue 中,我尝试获取 TMainClass 字段的值:

function TMainClass.GetValue;
begin
  vCtx := TRTTIContext.Create;
  vType := vCtx.GetType(Self.ClassInfo);
  for vField in vType.GetFields do
    vField.GetValue(
        //Here's the trouble, because i don't know how to get the instance
    );

是否有其他方法可以获取作为另一个类的实例的字段值?

【问题讨论】:

    标签: delphi field delphi-2010 rtti


    【解决方案1】:

    您必须将实例作为 GetValue 的参数传递

    vField.GetValue(self);

    为了更好地理解 Rtti,请阅读 Robert Love 的 remarkable articles about RTTI。对于这个问题,专门针对Properties and Fields这个问题。

    【讨论】:

    • 非常感谢,我已经阅读了这些文章,但似乎没有那么用心。你的回答解决了我的问题。
    • 第二个链接是同一个...粘贴了错误的链接?我想他要贴这个:robstechcorner.blogspot.com/2009/09/…
    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多