AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Performanceproblem mit ca. 30000 Listboxeinträgen
Thema durchsuchen
Ansicht
Themen-Optionen

Performanceproblem mit ca. 30000 Listboxeinträgen

Ein Thema von Hallo_Thomas · begonnen am 12. Mai 2005 · letzter Beitrag vom 18. Mai 2005
Antwort Antwort
Benutzerbild von Sharky
Sharky

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

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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz