Delphi-PRAXiS
Seite 2 von 2     12   

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

Re: Random?
 
Hm der iss relativ umfangreich. Ich kann aber mal die wichtigsten Funktionen reinschreiben:
OnCreate:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 DBListBox1.Items.Clear;
 FillBox;
 Randomize;
 while not ADOQuery1.Eof do begin
  DBListBox1.Items.Add(ADOQuery1.FieldByName('german').AsString);
  ADOQuery1.Next
end;
end;
FillBox ist eine Funktion zum Einfügen der DBListBox Items!

LBRandom (Randomfunktion):
Delphi-Quellcode:
procedure TForm1.LBRandom;
begin
 DBListBox1.ItemIndex := Random(DBListBox1.Items.Count);
 varia := DBListBox1.Items[DBListBox1.ItemIndex];
end;
1ter Aufruf der Funktion:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
 LBRandom;
 KWizardWelcomePage3.Show;
 KWizardWelcomePage3.VisibleButtons := [bkNext,bkFinish];
end;
KWizard iss ne VCL.

2ter Aufruf der Funktion:
Delphi-Quellcode:
procedure TForm1.KWizardWelcomePage3NextButtonClick(Sender: TObject;
  var Stop: Boolean);
begin
 if KWizardWelcomePage3.VisibleButtons = [bkBack,bkNext,bkFinish] then
 KWizardWelcomePage1.Show else LBRandom;
end;
Hm das war jetzt eigentlich das wichtigste...

XeRo 6. Dez 2003 13:49

Re: Random?
 
Du kannst ja auch versuchen andere faktoren mitein zu berechnen.
ZB die momentane Zeit oder das Datum:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
 var i,randomzahl:Integer;
begin
For i:=1 to StrToInt(Copy(TimeToStr(now),7,2)) do
 begin
  Randomize;
 end;

RandomZahl:=Random(100);
end;
So ist die gefahr, dass immer das selbe herauskommt nur noch 1/60.

Du kannst ja auch andere faktoren miteinberechnen. Datum, wochentag,...
je mehr desto besser.
Allerdings sollte die schleife nicht zu lange werden.

axelf98 6. Dez 2003 13:55

Re: Random?
 
Hmm, es macht doch keinen Sinn 60 Mal hintereinander "randomize" aufzurufen, oder?
Der Befehl geht von der Systemzeit aus und berechnet daraus Zufallzahlen. Wenn man allerdings 60 Mal mit der gleichen Zeit macht (ungefähr) kommt am ende das gleiche raus, wie als wenn man das nur 1 mal macht, nämlich Zufallszahlen!

Es reicht den Befehl im OnCreate einmal aufzuführen.

Übrigens: Wenn man auf random(x) zugreift, ohne vorher randomize aufzurufen, werden bei jedem Programmstart die gleichen Zufallszahlen ausgeworfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr.
Seite 2 von 2     12   

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