RTTI를 사용하여 열거 형 필드 값을 설정하는 방법은 무엇입니까?열거 형의 Delphi RTTI SetValue
e.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;
"잘못된 클래스 유형 변환"이 표시됩니다.
NB : 디자인 타임에 객체 유형이나 필드 이름을 항상 알지 못하기 때문에 RTTI를 사용해야합니다.
감사합니다. FromVariant와 FromOrdinal을 살펴보고 From 메서드를 놓쳤습니다. –