我有一个类型:
TControlPointer = ^TControl;
班级中的私人领域:
TMyClass = class(TObject)
private
FPointer : TControlPointer;
end;
当我尝试使用RTTI设置FPointer的值时:
procedure SetControlPointer(pControl : TControlPointer);
[...]
RTTIField.SetValue(Self,pControl);
编译说 [dcc32错误] myunit.pas(xxx):E2010不兼容的类型:'TValue'和'TControlPointer'
有什么想法吗?
谢谢
答案 0 :(得分:0)
错误只是告诉您RTTIField.SetValue
期望传递TValue
。所以我想你只需要将指针放入TValue
TValue.From<TControlPointer>(Self.pControl)
您传递给RTTIField.SetValue
的内容。
您可以让编译器推断出类型并简单地写
TValue.From(Self.pControl)