![]() |
Random?
Hi ich hab ein Problem mit dem Zufallsgenerator. Und zwar gehts drum, dass ich bei jedem Aufruf der Funktion einen anderen Wert haben möchte. Mein Quellcode:
Delphi-Quellcode:
Zur Erklärung: varia ist eine lokale Stringvariable, in den ich den selektierten Wert der ListBox hineinkopiere, um ihn weiterzuverwenden. Naja nur kommt halt jedes mal der gleiche Wert raus. Wieso??? :(
procedure TForm1.Random;
begin Randomize; DBListBox1.ItemIndex := RandomRange(0,DBListBox1.Items.Count-1); varia := DBListBox1.Items[DBListBox1.ItemIndex]; end; |
Re: Random?
Randomize nur einmal aufrufen am Besten im OnCreate der Form oder im Initialization Teil deines Progs ;)
|
Re: Random?
Hm das bringt mir aber nicht viel, da ich die Funktion per Button aufrufen möchte. Gehts nicht auch anders? :?:
|
Re: Random?
Normalerweis leitet Randomize den Startwert (RandSeed) einen aus der Systemzeit abgeleiteten Wert zu, was eigendlich bedeutet das die 1. Zufallszahl "jedesmal" eine Andere sein sollte.
Aber vesuche mal Randomize nicht in deiner Zufallsfunktion auszuführen, sondern nur einmal im OnCreate-Ereignis deines Formulars. http://www.delphipraxis.net/images/common/divider.jpg ![]() ![]() ![]() |
Re: Random?
Liegt am Randomize, führe dies nur einmal aus, z.B. direkt nach Programmstart.
|
Re: Random?
Hm nee kann nicht sein, habs in das OnCreate der Form reingemacht und will trotzdem nicht. Komischerweise beim 1ten Aufruf geht die Funktion immer :?:
|
Re: Random?
Und so:
Delphi-Quellcode:
http://www.delphipraxis.net/images/common/divider.jpg
Procedure TForm1.FormCreate(Sender: TObject);
Begin Randomize; End; Procedure TForm1.Random; Begin DBListBox1.ItemIndex := Random(DBListBox1.Items.Count); varia := DBListBox1.Items[DBListBox1.ItemIndex]; End; ![]() ![]() ![]() |
Re: Random?
Mit grosser warscheinlichkeit liegt es daran, das deine Prozedur Random heisst. Das beisst sich mit einer Delphi-Funktion, die genauso heisst. Bennen sie mal um in LBRandom oder so und teste es nochmal.
|
Re: Random?
@himitsu:
Hab ich probiert geht nicht! @scp: Geht auch nicht. Hab sie überall umbenannt. Schon komisch, wie gesagt beim 1ten Aufruf gehts, da kommt wirklich ne Zufallszahl, beim 2ten Aufruf aber nicht. :cry: |
Re: Random?
@scp:
die Prozedur Random ist ja in der Klassen TForm1 und kann sich normalerweise nich mir der Funktion Random überschneiden. @Killer: wenn möglich stell doch mal etwas mehr von deinem Code zur Verfügung. Vieleicht wird ja was anderes wichtiges überseh'n. http://www.delphipraxis.net/images/common/divider.jpg ![]() ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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