![]() |
TStrings-Elemente zufällig anordnen
Ich habe z.Z. folgenden Code um die Strings einer Listbox zufällig anzuordnen:
Delphi-Quellcode:
Doch leider werden die Items oft kaum durcheinander gewürfelt... :(
procedure TForm1.StringListZufall;
var randomliste : TStringList; i : Integer; j : Integer; begin randomliste := TStringList.Create; while (ListBox1.Items.Count>0) do begin i := Random(ListBox1.Items.Count); randomliste.Add(ListBox1.Items[i]); ListBox1.Items.Delete(i); end; ListBox1.Items.Assign(randomliste); randomliste.Free; end; Gibt es vielleicht eine bessere Lösung? |
Re: TStrings-Elemente zufällig anordnen
![]() |
Re: TStrings-Elemente zufällig anordnen
Randomize hast du aufgerufen?
Um das noch etwas zu variieren, könntest du die Items nicht einfach adden, sondern ab einer gewissen menge ein Insert(x) verwenden (x = zufällige Zahl <= Menge der bereits enthaltenen Einträge). |
Re: TStrings-Elemente zufällig anordnen
Hallo Marc,
wenn die Einträge in deiner ListBox schon vorgegeben sind dann hilft dir vielleicht dieser Code:
Delphi-Quellcode:
Grüße vom marabu
// Shuffle(ListBox.Items);
procedure Shuffle(sl: TStrings); var i: integer; begin for i := 1 to sl.Count - 1 do sl.Exchange(Pred(i), Pred(i + Random(sl.Count - i))); end; |
Re: TStrings-Elemente zufällig anordnen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 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