[示例] 访问类的私有属性
如何访问类的私有属性? 下面以 TPathData 为例,它有一个私有属性 PathData,储存了每一个曲线点,但一般无法修改它,需要利用下面方法,才能访问修改(若有更好的方法,歡迎分享): 一、利用 RTTI 取得类私有属性: = helper
PathData: TList
Type1: TRttiType; Field1: TRttiField; <span style="color: #0000ff">begin<span style="color: #000000"> Context1 := TRttiContext.<span style="color: #0000ff">Create<span style="color: #000000">; Type1 :=<span style="color: #000000"> Context1.GetType(TPathData); Field1 := Type1.GetField(<span style="color: #800000">'<span style="color: #800000">FPathData<span style="color: #800000">'<span style="color: #000000">);
<span style="color: #0000ff">end; 参考:(VKHelper,感谢 swish) 二、利用仿类将私有属性改成公有: type
TPathDataHack = class(TInterfacedPersistent)
public
FOnChanged: TNotifyEvent;
FStyleResource: TObject;
FStyleLookup: string;
FStartPoint: TPointF;
FPathData: TList
TPathDataHelper = class helper for TPathData function TPathDataHelper.PathData: TList 参考: 三、直接使用 with Self do(此法最简单):(2017/09/04) type
TPathDataHelper = class helper for TPathData
public
procedure SetPoint(const AIndex: Integer; const PathPoint: TPathPoint);
end;
procedure TPathDataHelper.SetPoint(const AIndex: Integer; const PathPoint: TPathPoint); (感谢 [深圳]cjc 提供) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |