Delphi 如何访问记录属性?
我需要访问、记录属性,并设置/获取此属性值。 首先,我想访问属性。但我不能 怎么了? 版本:DelphiXe6 示例代码:Delphi 如何访问记录属性?,delphi,record,rtti,Delphi,Record,Rtti,我需要访问、记录属性,并设置/获取此属性值。 首先,我想访问属性。但我不能 怎么了? 版本:DelphiXe6 示例代码: type TmyRecord = record private Str : String; public property StrProp :String read Str; end; procedure TForm1.Button3Click(Sender: TObject); var c : TRttiContext; t :
type
TmyRecord = record
private
Str : String;
public
property StrProp :String read Str;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
c : TRttiContext;
t : TRttiType;
field : TRttiField;
prop : TRttiProperty;
begin
c := TRttiContext.Create;
try
Memo1.Lines.Append('Fields');
for field in c.GetType(TypeInfo(TMyRecord)).GetFields do
begin
t := field.FieldType;
Memo1.Lines.Append('Field:'+field.Name);
Memo1.Lines.Append('RttiType:'+t.ClassName);
end;
Memo1.Lines.Append('Properties');
for prop in c.GetType(TypeInfo(TMyRecord)).GetProperties do
begin
t := prop.PropertyType;
Memo1.Lines.Append('Property:'+prop.Name);
Memo1.Lines.Append('RttiType:'+t.ClassName);
end;
finally
c.Free
end;
end;
您的问题是,2009年报告的记录属性没有可用的RTTI,但仍然没有修复()
编辑:在2017年仍未修复()。FWIW,无需在TrtContext上调用Free,甚至无需调用Create