我使用德爾福1位16位學習帕斯卡爾(不要笑,它工作正常,加上我買不起更新的版本)。我正在使用TList來保存簡單地址簿的對象引用。每個對象都添加到從TList像這樣:我是否需要釋放這些對象?
DataList.Add(TAddrBookData.Create('Bob', '1 Mill St'));
我需要釋放TAddrBookData對象自己?或者當TList.Free運行時它們被釋放了嗎?
我使用德爾福1位16位學習帕斯卡爾(不要笑,它工作正常,加上我買不起更新的版本)。我正在使用TList來保存簡單地址簿的對象引用。每個對象都添加到從TList像這樣:我是否需要釋放這些對象?
DataList.Add(TAddrBookData.Create('Bob', '1 Mill St'));
我需要釋放TAddrBookData對象自己?或者當TList.Free運行時它們被釋放了嗎?
你需要自己釋放它們。後來的版本帶有一個TObjectList,它就像一個TList,除了它只會接受對象,並且它可以在列表被釋放時自動獲取所有權並自動釋放它們。但我不相信Delphi 1中存在TObjectList,因此您必須手動處理它。
您還需要釋放(或FreeAndNil)。
如果你想用一個更新的(免費的)IDE學習Object Pascal(Delphi),試試Lazarus免費的Turbo Delphi 2006已經停產了(這是一個壞的舉動)。
歡迎來到StackOverflow,Frank_M!好問題。我不會笑,但我會警告你。 64位Windows每天都變得越來越流行,並且16位應用程序無法在其上運行。如果你買不起一個現代版本,看看你是否至少能找到一個Delphi 7的舊版本在某個地方浮動。 Delphi 1有很多增強功能。 – 2010-07-07 12:31:30
Delphi 1並不是學習OOP的好開始。如果你想學習基礎知識,那很好,但在現代技術方面它確實過時了。如果你想學習現代的OOP和編程技術,我推薦C#,它有免費的IDE:http://www.microsoft.com/express/Downloads/#2010-Visual-CS。 C#是由ex delphi架構師設計的,所以它從中受益良多。 – Andrey 2010-07-07 12:36:00
如果您決定學習Delphi,您可能需要查找從Borland/CodeGear/Embarcadero網站中刪除的Delphi 7 Personal,但仍然可以在某些鏡像宿主中使用。我認爲使用它是合法的,因爲它曾經作爲免費軟件發佈過。 – migajek 2010-07-07 12:49:48