我正在使用delphi 2009和VCL组件。我创建了一个名为
TStreets由商品TStreet组成,其中只有两个私有字段。现在我需要添加
到Tstreet类的另一个字段/属性来跟踪(通过使用引用)
TMyObject类的其他对象。

一个示例:假设TStreet集合包含五个元素和十个对象
(TMyObject)在运行时存在于我的应用程序中。 TMyObject的每个对象都可以属于
到一个TStreet,所以我需要为每个TStreet保存所有对象引用和
然后能够将一个或多个对象引用从一个TStreet移动到另一个。
我是否应该在TStreet下创建另一个保存对象引用的集合?

这是正确的方法吗?

最佳答案

鉴于以下。

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>;

10-06 10:39