1

是否可以通过类型 info 获取类似于类的已发布属性列表的记录元素或字段列表?

谢谢 !

4

1 回答 1

8

取决于您的 delphi 版本,如果您使用的是 delphi 2010 或更新版本,您可以使用新的 rtti 增强功能。

检查此代码

program ProjectTestRtti;

{$APPTYPE CONSOLE}

uses
  Rtti,
  SysUtils;

type
  MyRecord=record
   Field1 : integer;
   Field2 : boolean;
   Field3 : string;
  end;

var
 ctx   : TRttiContext;
 t     : TRttiType;
 field : TRttiField;
begin
 try
     ctx := TRttiContext.Create;
     for field in ctx.GetType(TypeInfo(MyRecord)).GetFields do
     begin
       t := field.FieldType;
       writeln(Format('Field : %s : Type : %s',[field.Name,field.FieldType.Name]));
     end;
 except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
 end;

  Readln;
end.
于 2010-12-09T02:29:45.067 回答