Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Random? (https://www.delphipraxis.net/12705-random.html)

Killer 2. Dez 2003 18:02


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:
procedure TForm1.Random;
begin
 Randomize;
 DBListBox1.ItemIndex := RandomRange(0,DBListBox1.Items.Count-1);
 varia := DBListBox1.Items[DBListBox1.ItemIndex];
end;
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??? :(

phlux 2. Dez 2003 18:11

Re: Random?
 
Randomize nur einmal aufrufen am Besten im OnCreate der Form oder im Initialization Teil deines Progs ;)

Killer 2. Dez 2003 18:12

Re: Random?
 
Hm das bringt mir aber nicht viel, da ich die Funktion per Button aufrufen möchte. Gehts nicht auch anders? :?:

himitsu 2. Dez 2003 18:12

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
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

Frank Bicking 2. Dez 2003 18:13

Re: Random?
 
Liegt am Randomize, führe dies nur einmal aus, z.B. direkt nach Programmstart.

Killer 2. Dez 2003 18:16

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 :?:

himitsu 2. Dez 2003 18:22

Re: Random?
 
Und so:
Delphi-Quellcode:
Procedure TForm1.FormCreate(Sender: TObject);
  Begin
    Randomize;
  End;

Procedure TForm1.Random;
  Begin
    DBListBox1.ItemIndex := Random(DBListBox1.Items.Count);
    varia := DBListBox1.Items[DBListBox1.ItemIndex];
  End;
http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

scp 2. Dez 2003 18:24

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.

Killer 2. Dez 2003 18:29

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:

himitsu 2. Dez 2003 18:34

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
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr.
Seite 1 von 2  1 2      

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