2
我有一些問題,RTTI ..我瓦納枚舉記錄類型所有的constans值枚舉常量記錄字段
type TMyRecord = record
const
value1: Integer=10;
value2: Integer=13;
value3: Integer=18;
value4: Integer=22;
end;
procedure TForm3.Button1Click(Sender: TObject);
var
ctx:TRttiContext ;
Field:rtti.TRttiField ;
begin
for Field in ctx.GetType(TypeInfo(TMyRecord)).GetFields do
ListBox1.Items.Add(Field.Name ); // i got nothing
end;
但是當我的記錄是不是一個常量,我的代碼做工精細
type TMyRecord = record
value1: Integer;
value2: Integer;
value3: Integer;
value4: Integer;
end;
procedure TForm3.Button1Click(Sender: TObject);
var
ctx:TRttiContext ;
Field:rtti.TRttiField ;
begin
for Field in ctx.GetType(TypeInfo(TMyRecord)).GetFields do
ListBox1.Items.Add(Field.Name ); //its work
end;
這是因爲RTTI不支持常數 – RRUZ