列出记录的元素\字段

发布于 2024-10-06 17:34:04 字数 61 浏览 4 评论 0原文

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

谢谢 !

Is it possible to get the list of a record's elements or fields
similar to a list of a class's published properties via type info ?

Thanks !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝眼睛不忧郁 2024-10-13 17:34:04

取决于您的 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.

Depends of your delphi version, if you are using delphi 2010 o newer you can use the New rtti enhancements.

check this code

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.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文