![]() |
Re: Mischen Funktion
und nochmal Hi.
Natürlich hat "Ratte" recht, es muss Random(30) lauten..ich werde wohl alt... Hier exemplarisch meine Lösung mit der Stringlist (die eigentlich eher für Dateinamen gedacht war) Damit ich im Test auch etwas sehen konnte, habe ich eine Listbox genommen, etwas nichtvisuelles geht aber natürlich auch. Hier sind es sogar zwei. Eine mit den Vorgabewerten und eine mit dem Ergebnis.
Delphi-Quellcode:
Ggf. ist die Lösung nicht elegant, aber sie sollte gehen.
procedure TForm1.Button_startClick(Sender: TObject);
var i :integer; begin // die Maximale Anzahl wird gesetzt anzahl := 30; // die Vorgabeliste wird geleert listbox_vorgabe.Items.Clear; // die Schleife füllt die Liste mit den möglichen Werten // in diesem Fall einfach Zahlen i := 1; for i := 1 to anzahl do begin; listbox_vorgabe.Items.Append(inttostr(i)); end; // die Ausgabeliste wird geleert listbox_ausgabe.Items.Clear; randomize; // in der Vorgabeliste wird ein beliebiges Item gewählt, in die Ausgabeliste angehängt // und in der Vorgabeliste gelöscht bis keine Items mehr da sind while listbox_vorgabe.Items.Count > 0 do begin; zufallszahl := random(listbox_vorgabe.Items.Count); listbox_ausgabe.Items.Append(listbox_vorgabe.Items.Strings[zufallszahl]); listbox_vorgabe.Items.Delete(zufallszahl); end; //nun enthält die Vorgabeliste keine Items mehr //und die Ausgabeliste eine zufällige Reihenfolge der Items end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 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