我在使用rtti。
将变量字段设置为null时遇到问题假设我有这样的课程:
TClass1 = class
Field1:Integer;
Field2:Variant;
end;
当我访问Field1时,我可以这样做:
Field.SetValue(TObject(ValueObject.AsObject), 1);
但似乎我不能用Field2做到这一点:
Field.SetValue(TObject(ValueObject.AsObject), null);
或
Field.SetValue(ValueObject.AsObject, TValue.FromVariant(NULL));
所以,我想要的是能够将null值设置为上面的类的Field2。可能吗?任何想法都将不胜感激。
戈兰
答案 0 :(得分:4)
这有效:
Field.SetValue(Self, TValue.From<Variant>(Null) );
答案 1 :(得分:1)
这看起来是我在回答this question时发现的错误的另一种表现形式。对于某些数据类型,SetValue不能正确处理“空”值。我将用新案例更新质量控制报告。所以,目前,你不能,至少没有自己修补RTTI单元。