Delphi-Quellcode:
for pl0 := Form1.Anzeige.count - 1 downto 0 do // (1) Das ist die Schleife für die Items (30.000)
begin
(*
*
* du bist auch ein "Held", wenn du 410 Mal auf die gleichen Daten zugreifst !!!!
*
*)
// den Wert AUSSERHALB der inneren Schleife lesen
// und auch gleich als Integer merken (spart 409 *30000 Aufrufe auf StrToInt !!!)
aktwert := StrToInt(Form1.Anzeige.Items[pl0]);
for x := 0 to 409 do // (2) Das ist die Schleife für die Berechnung
begin
if aktwert in werte[x] then
Counte[x] := 0
else
Inc(Counte[x]);
end;
Du brauchst deine 410 Labels (was ja auch schon Wahnsinn ist) nicht 30000 Mal beschicken.
Es würde reichen, nur jedes 100. Mal die Labels zu aktualisieren:
Delphi-Quellcode:
if ((pl1 mod 100) = 0) then
for x := 0 to 409 do // (3) Das ist die Schleife für die Ausgabe
begin
(FindComponent('Label' + IntToStr(x + 2)) as TLabel).Caption :=
IntToStr(Counte[x]);
end;