我在使用 TScrollBox 中包含多个帧(通常为 25 个)的界面时遇到问题。
有两个问题,我希望一个是另一个的结果......
背景:
当应用程序启动时,我创建了 25 个帧,每个帧包含大约 25 个帧。20 个控件,然后填充默认信息。然后,用户可以单击控件以将搜索限制为信息子集,此时我释放并重新创建我的框架(因为搜索可能返回 < 25 条记录)
问题:
如果我在初始搜索后退出应用程序,则大约需要。5秒返回Delphi。在第二次搜索(并处理/重新创建帧)之后,大约需要。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;
我错过了什么?