今天用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