我正在使用delphi 2009和VCL组件。我创建了一个名为的集合 TStreets由TStreet项目组成,只有两个私有字段。现在我需要补充一下 到Tstreet类另一个字段/属性来跟踪(通过使用引用)的 TMyObject类的其他对象。
一个例子:让我们假设TStreet集合包含五个元素和十个对象 (TMyObject)在运行时存在于我的应用程序中。 TMyObject的每个对象都可以归属 只有一个TStreet所以我需要为每个TStreet保存对象的所有引用 然后能够将一个或多个对象引用从一个TStreet移动到另一个TStreet。 我应该在TStreet下创建另一个保存对象引用的集合吗?
走的路是否正确?
答案 0 :(得分:4)
鉴于以下内容。
TMyObject = class
...
end;
TStreet = class
...
public
property MyObject : TMyObject ...;
end;
TStreets = TList<TStreet>;
从阅读您的问题看来,TMyObject只能绑定到一个TStreet。
然后我建议撤消参考文献。
TStreet = class;
TMyObject = class
protected
FStreet : TStreet;
public
property Street : TStreet read FStreet write FStreet;
end;
TMyObjectList = TList<TMyObject>;
TStreet = class
private
// Looks through MyObjectList returning correct
function GetMyObjecty : TMyObject; reference.
public
property MyObject : TMyObject read GetMyObject;
// Reference to list that contains all instance of TMyObjectList.
property MyObjectList : TMyObjectList;
end;
TStreets = TList<TStreet>;
TMyObjectList = TList<TMyObject>;