我遇到了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