TScrollBox 내의 여러 프레임 (일반적으로 25)으로 구성된 인터페이스에 문제가 있습니다.Delphi : TList of Frames의 문제
이 두 문제는, 내가 하나가 다른의 결과가 바라고 ...
배경 : 응용 프로그램이 시작되면
, 나는 25 프레임, 약 포함하는 각을 만들 . 20 개의 컨트롤이 기본 정보로 채워집니다.
경우 : 사용자는
문제를 (검색이 < (25) 기록을 반환 할 수 있습니다로) 내 프레임을 내가 무료로하는 점에서 정보의 하위 집합으로 검색을 제한하고 다시 컨트롤을 클릭 할 수 나는 초기 검색 후 응용 프로그램을 종료 한 다음 약 소요됩니다. 5 초 후에 델파이로 돌아갑니다. 2 차 검색 후 (그리고 프레임을 처리/재 작성) 약 2 분이 걸립니다. 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입니까? BTF, ClearFrames에서 for 루프 내부의 MF.Framelist를 참조하고 있습니다. 여기 보지 마. –
Framelist는 TMF Main Form의 Public 섹션에 선언 된 TList입니다. ClearFrames의 MF는 관계가 없지만 자체적으로 문제가 발생해서는 안됩니다. More Belt & Braces ... –