Delphi2009 泛型容器遍歷超界問題

2022-08-05 13:48:28 字數 509 閱讀 5354

今天用tdictionary,發現居然乙個成員的集合遍歷裡有2次。。。。就是下面簡單的遍歷

varlpair : tpair;

begin

for lpair in fformdictionary do

begin

tform(lpair.value).free;

end;

導致fff0006c的記憶體溢位!,網上搜尋了一下,解決方法如下:

開啟generics.collections單元,

#1. 將1679行

」inherited;」改為: inherited create;

#2. 修改三處(第1596行、第1631行、第1666行)「while findex < length(fdictionary.fitems) do」為 while findex < length(fdictionary.fitems) - 1 do

具體的分析可以借鑑:

附件:修正的generics.collections.dcu

Delphi 2009 超前預知

tiburon 是下一版本 delphi 的開發代號,之前的命名應該是 delphi 2008,但最近看 codegear 相關的 blog 文章發現,tiburon 很有可能被命名為 delphi 2009。codegear 的一篇文章也大概描述了此版本新增的一些 vcl 新元件和功能增強的元件,...

Delphi2009的兩個包

1 graphic32 這個處理圖形的庫,已經停止一段時間了,但是也有跟蹤使用的,現在已經有2010版本了,所以graphic32.d2010 已經存在了,編譯安裝,注意安裝設計庫時比較依賴執行庫,注意設定路徑。本執行庫可以簡單開發2d遊戲和影象處理,詳見 2 businessskinform v7...

Delphi2009新特性(1) Exit方法

在函式中,使用result作為返回變數,必須要等所有 執行完成 function tform1.abc x,y integer integer begin if y 0 then result 0 else result x y end delphi 2009,新增了exit方法,指定返回值,同時退...