1

タイプ情報を介して、クラスの公開されたプロパティのリストに類似したレコードの要素またはフィールドのリストを取得することは可能ですか?

ありがとう !

4

1 に答える 1

8

デルファイのバージョンによって異なりますが、デルファイ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 に答える