我需要释放这些物品吗?

Fra*_*kCM 12 delphi

我正在使用Delphi 1 16位来学习Pascal(不要笑,它工作正常,加上我买不起更新的版本).我正在使用TList来保存简单地址簿的对象引用.每个对象都添加到TList中,如下所示:

DataList.Add(TAddrBookData.Create('Bob', '1 Mill St'));
Run Code Online (Sandbox Code Playgroud)

我是否需要自己释放TAddrBookData对象?或者当TList.Free运行时它们被释放了吗?

Mas*_*ler 12

你需要自己释放它们.更高版本带有TObjectList,它类似于TList,除了它只接受对象,它可以选择获取所有权并在释放列表时自动释放它们.但我不相信Delphi 1中存在TObjectList,所以你必须手动处理它.

  • ...这是一个非常棒的*学习机会...获取TList然后设计扩展(派生类)以提供具有内容所有权语义的TObject类型安全容器.通过*开发*这样的课程,您将学到更多,而不仅仅是使用已经提供的课程. (4认同)

Ale*_*exV 8

您还需要免费(或FreeAndNil).

如果您想学习使用更新(和免费)IDE的Object Pascal(Delphi),请尝试Lazarus,因为免费的Turbo Delphi 2006已经停止使用(这是一个糟糕的举动).

  • 非常非常糟糕的举动,确实:( (5认同)
  • 拉撒路小费为+1.我不得不说,在没有支付官方IDE的情况下,没有办法学习Delphi是非常可悲的.有一些人不遗余力地学习德尔福(就像海报上有一个旧的16位副本,或者可能是为了一点钱而买的),但是大多数人都离开了.谁会支付几百欧元只是为了在最基本的版本中愚弄?我会使用Visual Studio C#Express或Eclipse/Netbeans for Java,并将Delphi留给它. (2认同)