У меня проблема с интерфейсом, состоящим из нескольких кадров (обычно 25) в TScrollBox.
Есть 2 проблемы, и я надеюсь, что один является следствием другого...
Фон:
Когда приложение запускается, я создаю 25 кадров, каждый из которых содержит ок.20 элементов управления, которые затем заполняются информацией по умолчанию.Затем пользователь может щелкнуть элемент управления, чтобы ограничить поиск подмножеством информации, после чего я освобождаю и воссоздаю свои кадры (так как поиск может вернуть <25 записей) </p>
Проблема:
Если я выйду из приложения после начального поиска, то это займет ок.5 секунд, чтобы вернуться в Delphi.После 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;
Чего мне не хватает?