Rtti 單元 4 獲取結構的資訊

2021-05-24 01:56:21 字數 1177 閱讀 6234

下面以 tpoint 為例, 用 trttirecordtype 讀取了結構的資訊.

unit unit1; 

inte***ce 

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 

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.

Rtti 單元 3 獲取有序型別的資訊

任何資料型別中 rtti 中都有對應的獲取資訊的類,有序型別對應的是 trttiordinaltype.unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs...

Rtti單元 1 獲取類的方法 屬性 欄位的列表

通過 rtti 單元的 trtticontext 是個 record 可以方便地獲取類的方法 屬性 欄位的列表.unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dia...

Rtti單元 1 獲取類的方法 屬性 欄位的列表

通過 rtti 單元的 trtticontext 是個 record 可以方便地獲取類的方法 屬性 欄位的列表.unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dia...