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