在发现我们有一些基本的内存泄漏后,我一直在给我们的一些应用程序一个弹簧清理。将FastMM4插入我们的一个应用程序后,我收到一个抽象错误,似乎是在我清除框架列表时
我有一个带有滚动框的表格。滚动框具有结果列表或详细信息。结果和细节都是以框架形式设计的。
首先,我得到一批结果(最多25条记录)并创建适当的帧数
var
Framelist: TList;
NewSF: TSF;
begin
Framelist := TList.Create;
for i := 0 to Batch.Count - 1 do
begin
NewSF := TSF.Create(nil);
NewSF.Name := 'SF' + IntToStr(i);
NewSF.Parent := ScrollBox1;
FrameList.Add(NewSF);
end;
end;
单击框架时,结果框架清晰,并在滚动框中创建细节框架。我目前已停用细节框架的创建,并专注于清除框架。
这些帧最初是这样清除的:
while FrameList.Count > 0 do
begin
TSF(FrameList[0]).free;
FrameList.delete(0);
end;
我也尝试过这样:
for i := 0 to FrameList.Count - 1 do
begin
SF := FrameList[i];
SF.Free;
SF := nil;
end;
关于我做错的任何建议 - 无论是创作还是破坏?