Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Problem beim erzeugen von Zufallszahlen 100.000<

  Alt 27. Jun 2005, 01:36
Hallo,

zum Beschleunigen fallen mir da zwei Sachen ein:

Delphi-Quellcode:
ListBox1.Items.BeginUpdate; // <--
for i:=1 to StrToInt64(Edit1.Text) do//////hier wird bestimmt wieviel Zz erzeugt werden
begin
  Zahl :=random(7)+1;
  meineListe.Add(IntToStr(Zahl)); // <--
  if Zahl in [1,37] then farbe := clblue else
  farbe := clyellow;
  Listbox1.Items.InsertObject(0,IntToStr(Zahl), Pointer(farbe));
end;
ListBox1.Items.EndUpdate; // <--
Mit BeginUpdate/EndUpdate sagtst Du Windows, dass Du jetzt viele Sachen ändern möchtest und Windows sich vorerst raushalten soll (Sonst will Windows bei jeder Änderung die Listbox neu zeichnen).

Mit Add() statt Insert() sparst Du Dir jede Menge Speicheroperationen. Bei Insert müssen ja jedesmal sämtliche Referenzen nach hinten geschoben werden, damit vorne wieder Platz ist. Bei 100.000 Verschiebungen kommt da ganz schön was zusammen.

Gruß
xaromz
  Mit Zitat antworten Zitat