Перечислите элемент \ поля Записи - PullRequest
1 голос
/ 09 декабря 2010

Можно ли получить список элементов или полей записи похож на список опубликованных свойств класса через тип info?

Спасибо!

1 Ответ

8 голосов
/ 09 декабря 2010

Зависит от вашей версии Delphi. Если вы используете Delphi 2010 o или новее, вы можете использовать новые усовершенствования 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.
...