Rtti 单元(4): 获取结构的信息

    技术2022-06-26  46

    下面以 TPoint 为例, 用 TRttiRecordType 读取了结构的信息.

    unit Unit1;  interface  uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;  type  TForm1 = class(TForm)   Memo1: TMemo;   Button1: TButton;   procedure Button1Click(Sender: TObject);  end;  var  Form1: TForm1;  implementation  {$R *.dfm}   uses Rtti;  procedure TForm1.Button1Click(Sender: TObject); var  t: TRttiRecordType;  f: TRttiField; begin  Memo1.Clear;  t := TRttiContext.Create.GetType(TypeInfo(TPoint)).AsRecord;  Memo1.Lines.Add(t.QualifiedName);  Memo1.Lines.Add(Format('Size: %d', [t.TypeSize]));  Memo1.Lines.Add(EmptyStr);   Memo1.Lines.Add(Format('字段数: %d', [Length(t.GetFields)]));  Memo1.Lines.Add(Format('方法数: %d', [Length(t.GetMethods)]));  Memo1.Lines.Add(Format('属性数: %d', [Length(t.GetProperties)]));  Memo1.Lines.Add(EmptyStr);   Memo1.Lines.Add('全部字段:');  for f in t.GetFields do Memo1.Lines.Add(f.ToString); end;  end.


    最新回复(0)