7

Consider the following:

TFieldType = class
  fValue: string;
end;

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

In TMainClass.GetValue I'm tryin get values of TMainClass fields:

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
    );

May be there are another ways of getting values of fields which are the instances of another classes?

1 Answer 1

7

You have to pass the instance as the a parameter of GetValue like

vField.GetValue(self);

For a better understanding of Rtti read the remarkable articles about RTTI by Robert Love. For this problem specialy this one about Properties and Fields.

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks a lot, i've read these articles, but it seems not so attentively. Your answer resolvd my problem.
Second link is same one... wrong link pasted ? I think he ment to paste this one: robstechcorner.blogspot.com/2009/09/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.