Zitat von
ACE-ppc:
...
Der Trick ist ... das man die Werte der Listbox extra nach int Konvertiert .. s. Unten !
Hai ACE-ppc,
das kann/sollte man noch optimieren
Zitat:
Delphi-Quellcode:
//werte von Listbox Anzeige in Array of Integer konvertieren
for i := 0 to Anzeige.Count - 1 do
begin
//Array vergrößern
SetLength(iArray, i + 1);
//String to Int wndeln
iArray[i] := StrToInt(Anzeige.Items[i]);
end;
Du vergrösserst
in der Schleife das Array jedes mal um eine Einheit. Das verlangsamt die sache extrem.
Wenn ein dynamisches Array vergrössert wird passiert folgendes:
- 1. Es wird ein neuer Speicherbereich reserviert der um x Einheiten grösser ist als der alte
2. Die Daten werden von dem alten Speicherbereich in den neuen kopiert
3. Der alte Speicherbereich wird freigegeben
Da man ja vor der Schleife weiss wie groß das Array sein muss sollte es also auch einmal auf diese größe gesetzt werdne.
Delphi-Quellcode:
//Arraygröße festlegen
SetLength(iArray, Anzeige.Count - 1);
//werte von Listbox Anzeige in Array of Integer konvertieren
for i := 0 to Anzeige.Count - 1 do
begin
//String to Int wndeln
iArray[i] := StrToInt(Anzeige.Items[i]);
end;
Das dürfte noch einmal die Geschwindigkeit erhöhen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"