![]() |
Random Problem
Morgen Leute
also mein src
Delphi-Quellcode:
so und jetzt das problem...
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; begin Randomize; for i := 1 to strtoint(edAnzahl.text) do begin Listbox1.items.add(random(strtoint(edBis)+strtoint(EdVon))); end; end; in der zeile Zitat:
wenn edBis = 1 ist funktioniert das auch ganz gut aber wenn die zahl über 1 ist kommen werte von 1 und auch werte die über der endzahl heraus .. was is daran flassch oder wie kann ich das besser machen ?? MfG. PBiggi |
Re: Random Problem
Hallo PBiggi,
mach das besser so:
Delphi-Quellcode:
Grüße vom marabu
var
iStart, iEnde, iRange: integer; begin iStart := StrToInt(edVon); iEnde := StrToInt(edBis); iRange := Succ(iEnde - iStart); Listbox1.Items.Add(IntToStr(Random(iRange) + iStart)); end; Dass man mit Add() nur Zeichenketten verarbeiten kann, habt ihr alle gemerkt und keiner sagt mir was... |
Re: Random Problem
Hai PBiggi,
ich würde es so mache:
Delphi-Quellcode:
[Edit]Ups. Da ist mir marabu zuvor gekommen *g*[/edit]
procedure TForm1.FormCreate(Sender: TObject);
begin Randomize; // Nur einmal im Programm aufrufen! end; procedure TForm1.Button1Click(Sender: TObject); var i: integer; zufall : integer; von : integer; bis : integer; begin ListBox1.Clear; von := StrToInt(edVon.Text); bis := StrToInt(edBis.Text); for i := 1 to strtoint(edAnzahl.text) do begin zufall := Random (bis - von +1) + von; Listbox1.items.add(IntToStr (zufall)); end; end; |
Re: Random Problem
Liste der Anhänge anzeigen (Anzahl: 1)
ok ich hab den src so übernommen noch an die edits .text drangehönt und das ergebnis sieht so aus ...
edit: die rede is von marabu code |
Re: Random Problem
... peinlich hab von und bis irgentwo vertauscht :roll:
|
Re: Random Problem
Zitat:
Zeige doch mal den Code wie Du ihn jetzt hast. |
Re: Random Problem
Delphi-Quellcode:
Hab ich gerade getestet und geht 1a unter Delphi 6
procedure TForm1.Button1Click(Sender: TObject);
Var x : Integer; begin Randomize; for x := 1 to 10 do ListBox1.Items.Append(IntToStr(Random(StrToInt(Edit2.Text) - StrToInt(edit1.Text)) + StrToInt(Edit1.Text))); end; Edit1 : Min Edit2 : Max PS: Code ist nicht besonders elegant :D Edit: Da war wohl jemand schneller ^^ |
Re: Random Problem
jetztiger code
Zitat:
|
Re: Random Problem
in der Unit
Math Kategorie Zufallszahlen
Delphi-Quellcode:
function RandomRange(const AFrom, ATo: Integer): Integer;
|
Re: Random Problem
jo danke das sieht ja noch einfacher aus ;) ich werd das mal so probiern
|
Re: Random Problem
Hallo PBiggi,
denke daran, dass Math.RandomRange(iLow, iHigh) nie iHigh als Ergebnis liefert. Der Range ist ein nach oben offenes Intervall. In meinem Code war ich von einem geschlossenen Intervall ausgegangen. Wenn du also diese Funktion einsetzt, dann musst du das Supremum auf Succ(iHigh) setzen um ein vergleichbares Ergebnis zu erhalten. Freundliche Grüße vom marabu PS: Seit wann wird eigentlich die Math-Unit bei der Personal Edition mitgeliefert? |
Re: Random Problem
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz