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

简介: 下面以 TPoint 为例, 用 TRttiRecordType 读取了结构的信息.unit Unit1;  interface  uses  Windows, Messages, SysUtils, Variants, Classes, Grap...

下面以 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.

相关文章
|
8月前
|
Serverless C语言
C语言程序通常具有以下基本结构
C语言程序通常具有以下基本结构
42 0
|
1月前
定义结构
定义结构。
82 37
|
4月前
|
C++
【C++基础】程序流程结构详解
这篇文章详细介绍了C++中程序流程的三种基本结构:顺序结构、选择结构和循环结构,包括if语句、三目运算符、switch语句、while循环、do…while循环、for循环以及跳转语句break、continue和goto的使用和示例。
87 2
|
存储 算法 程序员
深入理解程序的结构
深入理解程序的结构
195 0
获取运行时类的属性结构
获取运行时类的属性结构
43 0
|
8月前
|
存储 Serverless C语言
C语言程序的结构
C语言是一种广泛使用的编程语言,其程序结构清晰,易于理解。下面我们将详细探讨C语言程序的基本结构,并通过一个示例代码来展示这些组成部分是如何协同工作的。 一、C语言程序的基本结构
93 0
|
8月前
|
存储 程序员 C语言
C语言程序结构
C语言程序结构
43 0
|
8月前
|
Linux 编译器 Android开发
设备树覆盖:概念与术语
设备树覆盖:概念与术语
139 0
|
安全
RxSwift特征序列Driver的使用,以及共享附加作用与非共享附加作用的区别?
RxSwift特征序列Driver的使用,以及共享附加作用与非共享附加作用的区别?
187 0
|
算法
程序的三大结构
程序的三大结构是:顺序结构,选择结构,循环结构。
225 0