delphi - 列表中的对象需要访问父列表属性

标签 delphi

这是德尔福的设计问题。

对象 A 包含一组变量,同时存储类型 B 的对象列表。类型 B 的对象需要访问容器对象 A 中的公共(public)变量。一个选项是对象 B 持有对容器对象 A 但这似乎导致将对 A 的引用存储为 TObject 并每次都对对象 A 进行封装以访问变量。还有其他可能的设计解决方案吗?

Object B
  // Possible solution
  ref to Object A

Object A
  x : integer
  list of B

每个 B 都需要访问 x

最佳答案

您需要一个前向类型声明:

type
  TContainer = class; // forward declaration

  TItem = class
  private
    FContainer: TContainer;
    ....
  end;

  TContainer = class
  private
    // list of items
  end;

前向声明可以是容器或项目,哪个并不重要。

在文档中阅读所有相关信息:http://docwiki.embarcadero.com/RADStudio/en/Classes_and_Objects#Forward_Declarations_and_Mutually_Dependent_Classes

关于delphi - 列表中的对象需要访问父列表属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25474503/

相关文章:

delphi - 带有 alpha 混合图标的图像列表失去透明度

c++ - 如何获取 C++ 接口(interface) VMT 的地址

delphi - 如何在Windows 7上插入工作的TAB字符?

delphi-7 - 在 object pascal 中声明一个接口(interface)并将其用作返回值

delphi - 集合类型是否适合循环迭代?

delphi - 如何在不同的缓存上使用TWebbrowser?

delphi - TSaveTextFileDialog 和 Vcl 样式

delphi - Delphi 的简单数据执行预防示例代码

delphi - 如何让我的安装程序应用程序在 Windows 上正常运行?

android - MultiView 首秀,FPS 很低的动画