列出Record的元素\字段

时间:2010-12-09 01:36:49

标签: delphi delphi-2006

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

谢谢!

1 个答案:

答案 0 :(得分:8)

取决于你的delphi版本,如果你使用delphi 2010更新,你可以使用New 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.