Ich habe ein Problem mit einer Schnittstelle, die aus einer Anzahl von Frames (normalerweise 25) innerhalb einer TScrollBox besteht.Delphi: Probleme mit TList von Frames
Es gibt zwei Probleme, und ich hoffe, dass man eine Folge der anderen ist ...
Hintergrund:
Wenn die Anwendung startet, schaffe ich 25 Bilder, die jeweils ca. enthaltend . 20 Steuerelemente, die dann mit den Standardinformationen gefüllt werden. Der Benutzer kann dann auf einem Steuerelement klicken Sie auf die Suche auf eine Teilmenge der Informationen zu begrenzen, den Punkt, den ich meine Frames befreien und neu erstellen (wie die Suche < 25 Datensätze zurückgeben kann)
Das Problem:
Wenn Ich beende die Anwendung nach der ersten Suche, dann dauert es ca. 5 Sekunden, um nach Delphi zurückzukehren. Nach der 2. Suche (und dem Neuanlegen von Frames) dauert es ca. 20 Sekunden)
Während ich die Anwendung schreiben konnte, um nur die Rahmen einmal zu erstellen, würde ich gerne verstehen, was vor sich geht.
Hier ist meine schaffen Routine:
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;
Und hier ist meine Löschroutine:
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;
Was bin ich?
Welcher Art ist FrameList? Übrigens, in ClearFrames beziehen Sie sich auf MF.Framelist innerhalb der for-Schleife. Sieht hier nicht richtig aus. –
Framelist ist eine TList, die im Abschnitt Public des TMF-Hauptformulars deklariert wurde. Der MF in ClearFrames ist überflüssig, sollte aber an sich keine Probleme verursachen. Mehr Belt & Braces ... –