Delphi RTTI SetValue for Enumerations
问题 How do I use RTTI to set an enumerated field's value ? I.e. 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; I get "Invalid class typecast." NB:I need to use RTTI because I will not always know the object type or field name at design time. 回答1: you must pass a