Delphi use reflection in a class procedure for the getting dynamic class type

delphi, reflection, rtti

Solution

You can use `ClassInfo` and `GetType`:

class procedure AAA.SetTableAndSequence;
var
  c: TRttiContext;
  t: TRttiType;
begin
  t := c.GetType(ClassInfo);
  ...
end;

Problem

I want use reflection on the current class inside a class procedure/function (static method). How can I do without using the "Self" keyword? And without harcode the class name: this procedure should be override in the descendants. ``` class procedure AAA.SetTableAndSequence; var c : TRttiContext; t : TRttiType; begin c := TRttiContext.Create; try t := c.GetType(Self.ClassType); ... finally c.Free; end; end; ```

Original source

Related problems