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

2021-08-25 15:27:05 字數 1744 閱讀 9013

任何資料型別中 rtti 中都有對應的獲取資訊的類, 有序型別對應的是 trttiordinaltype.

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: trttiordinaltype; 

begin 

memo1.clear; 

//先從型別名獲取型別資訊物件 

t := trtticontext.create.gettype(typeinfo(byte)) as trttiordinaltype; 

memo1.lines.add(format('%s - %s', [t.name, t.qualifiedname])); 

memo1.lines.add(format('size: %d', [t.typesize])); 

memo1.lines.add('qualifiedname: ' + t.qualifiedname); 

memo1.lines.add(format('min,max: %d , %d', [t.minvalue, t.maxvalue])); 

memo1.lines.add(emptystr); //空字串 

//可以用 asordinal 方法代替前面的 as trttiordinaltype 

t := trtticontext.create.gettype(typeinfo(word)).asordinal; 

memo1.lines.add(format('%s: %s', [t.name, t.qualifiedname])); 

memo1.lines.add(format('size: %d', [t.typesize])); 

memo1.lines.add(format('min,max: %d , %d', [t.minvalue, t.maxvalue])); 

memo1.lines.add(emptystr); 

//也可以直接強制轉換 

t := trttiordinaltype(trtticontext.create.gettype(typeinfo(integer))); 

memo1.lines.add(format('%s: %s', [t.name, t.qualifiedname])); 

memo1.lines.add(format('size: %d', [t.typesize])); 

memo1.lines.add(format('min,max: %d , %d', [t.minvalue, t.maxvalue])); 

memo1.lines.add(emptystr); 

end; 

end.

Rtti 單元 4 獲取結構的資訊

下面以 tpoint 為例,用 trttirecordtype 讀取了結構的資訊.unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls t...

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...