Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Performanceproblem mit ca. 30000 Listboxeinträgen

  Alt 12. Mai 2005, 16:10
Zitat von Hallo_Thomas:
...
Bis jetzt lagst Du immer richtig, aber dieses einemal nicht, würdch behaupten.
Ich jetzt ein Diese Zeile so ersetzt und unten natürlich
folgendes rausgelöscht.
Ich glaube Du hast mich falsch verstanden.
Schauen wir uns mal den Code an:
Delphi-Quellcode:
    for pl0 := Form1.Anzeige.count - 1 downto 0 do // (1) Das ist die Schleife für die Items (30.000)
    begin
      for x := 0 to 81 do // (2) Das ist die Schleife für die Berechnung
      begin
        if StrToInt(Form1.Anzeige.Items[pl0]) in werte[x] then
          Counte[x] := 0
        else
          Inc(Counte[x]);
      end; // (2) Hier endet die Schleife für die Berechnung
      for x := 0 to 81 do // (3) Das ist die Schleife für die Ausgabe
      begin
        (FindComponent('Label' + IntToStr(x + 2)) as TLabel).Caption :=
          IntToStr(Counte[x]);
      end; // (3) Hier endet die Schleife für die Ausgabe
    end; // (1) hier endet die Schleife für die Items.
  end;
Du weisst also jedem TLabel 30.000 mal einenen wert zu
Wenn Du es aus der Schleife der Items raus nimmst:
Delphi-Quellcode:
    for pl0 := Form1.Anzeige.count - 1 downto 0 do // (1) Das ist die Schleife für die Items (30.000)
    begin
      for x := 0 to 81 do // (2) Das ist die Schleife für die Berechnung
      begin
        if StrToInt(Form1.Anzeige.Items[pl0]) in werte[x] then
          Counte[x] := 0
        else
          Inc(Counte[x]);
      end; // (2) Hier endet die Schleife für die Berechnung
    end; // (1) hier endet die Schleife für die Items.
   for x := 0 to 81 do // (3) Das ist die Schleife für die Ausgabe
   begin
     (FindComponent('Label' + IntToStr(x + 2)) as TLabel).Caption :=
         IntToStr(Counte[x]);
   end; // (3) Hier endet die Schleife für die Ausgabe
  end;
dann weisst Du jedem Label genau einmal einen Wert zu.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat