我遇到了TScrollBox内由多个框架(通常为25)组成的界面的问题。德尔福:框架的TList的问题
有2个问题,我希望其中一个是另一个的后果......
背景:
当应用程序启动时,我创建了25帧,每片含约。 20个控件,然后填充默认信息。然后,用户可以点击一个控制来限制搜索到的在我释放这点信息的一个子集,并重新创建我的帧(如搜索可能返回< 25条记录)
问题:
如果我在初次搜索后退出了应用程序,然后大约需要。 5秒钟后返回德尔福。第二次搜索后(和处理/重新创建帧)大约需要。 20秒)
虽然我可以重写应用程序只创建一次帧,我想了解发生了什么。
这里是我创建常规:
procedure TMF.CreateFrame(i: Integer; var FrameBottom: Integer);
var
NewFrame: TSF;
begin
NewFrame := TSF.Create(Self);
NewFrame.Name := 'SF' + IntToStr(i);
if i = 0 then
NewSF.Top := 8
else
NewSF.Top := FrameBottom + 8;
FrameBottom := NewFrame.Top + NewFrame.Height;
NewFrame.Parent := ScrollBox1;
FrameList.Add(NewFrame);
end;
这里是我的日常删除:
procedure TMF.ClearFrames;
var
i: Integer;
SF: TSF;
begin
for i := 0 to MF.FrameList.Count -1 do
begin
SF := FrameList[i];
SF.Free;
end;
FrameList.Clear;
end;
我缺少什么?
FrameList是什么类型的?顺便说一下,在ClearFrame中,你指的是for循环中的MF.Framelist。在这里看起来不正确。 – 2011-01-10 17:08:24
Framelist是在TMF主窗体的公共部分中声明的TList。 ClearFrames中的MF是多余的,但它本身不应该引起任何问题?更多皮带和大括号... – 2011-01-10 17:12:10