【发布时间】:2014-11-27 18:03:09
【问题描述】:
我有一个类型:
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'
有什么想法吗?
谢谢
【问题讨论】:
-
我可以将 TControl 传递给 SetControlPointer(pControl : TControl) 和 SetValue(Self,@pControl)。但我不知道传递整个 TControl 是否是个好主意。
-
TControl(和每个对象)是指针。你真的需要使用指向指针的指针吗?
-
@MBo 如果您想修改对象中的字段,可以这样做