我该如何使用运行时类型信息(RTTI)来设置枚举字段的值?
例如:
type
TCPIFileStatus= (fsUnknown, fsProcessed);
TTest = class
FStatus: TCPIFileStatus;
end;
...
var
Data: TTest;
Ctx: TRttiContext;
Status : TCPIFileStatus;
begin
Data := TTest.Create;
Status := fsProcessed;
Ctx.GetType(Data.ClassType).GetField('FStatus').SetValue(Data, Status);
end;
我收到了“无效的类类型转换”错误信息。
注意:我需要使用RTTI,因为在设计时我并不总是知道对象类型或字段名称。