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