Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi random() (https://www.delphipraxis.net/91964-random.html)

Dr4ke 12. Mai 2007 14:10


random()
 
Wie stelle ich es an das random() min. 1 raussucht und nicht 0?

Klaus01 12. Mai 2007 14:14

Re: random()
 
Delphi-Quellcode:
random(maxZahl) +1
oder randomRange

grüße
Klaus

Hador 12. Mai 2007 14:26

Re: random()
 
Zitat:

Zitat von Klaus01
Delphi-Quellcode:
random(maxZahl) +1

Naja eigentlich
Delphi-Quellcode:
Random(MaxZahl - 1) + 1
oder
Delphi-Quellcode:
Succ(Random(Pred(MaxZahl)))

Dr4ke 12. Mai 2007 14:27

Re: random()
 
Ahh tricky ;) Danke .. Aber ich hab noch ein Problem und möchte nicht gleich nen neuen Thread aufmachen.

Delphi-Quellcode:
procedure TForm1.btnWuerfelnClick(Sender: TObject);
var
ergebnis : integer;
begin
Addieren;
ergebnis := StrToInt(edtAnzahl.Text) + Addieren;
edtAnzahl.Text := IntToStr(ergebnis);
end;

function TForm1.Addieren : integer;
begin
Addieren := random(6)+1;
end;

Sollte recht verständlich sein .. Beim Button-klick wird eine Zufallszahl zwischen 1 und 6 generiert und zum Wert im Textfeld hinzugezählt. Jedoch erhalte beim Klick folgende Fehlermeldung:

Delphi-Quellcode:
" ist kein gültiger Integerwert.

Woran könnte das liegen?

Apollonius 12. Mai 2007 14:44

Re: random()
 
In deinem Textfeld steht gar nichts, es sollte aber eine Zahl darin stehen. Außerdem kannst du dir den ersten Aufruf von Addieren in dieser Form schenken, da er letztlich keinen Effekt hat.

Dr4ke 12. Mai 2007 14:46

Re: random()
 
Zitat:

Außerdem kannst du dir den ersten Aufruf von Addieren in dieser Form schenken, da er letztlich keinen Effekt hat.
Aber ja, sonst habe ich doch keine Zufallszahl?


Und danke für die Hifle mit dem Textfeld. Ich werde jetzt einfach ne 0 reinschreiben, oder gibt es eine sauberere möglichkeit?

SnuffMaster23 12. Mai 2007 14:49

Re: random()
 
Probier mal
Delphi-Quellcode:
function TForm1.Addieren : integer;
begin
  Result := random(6)+1;
end;
Addieren := random(6)+1; ist BASIC-Syntax ;)

Dr4ke 12. Mai 2007 14:57

Re: random()
 
Ich habe den Utnerschied jetzt nicht verstanden .. Ob ich nun das Ergebnis in Result oder im Rückgabewert der function speicher .. Ist das nicht egal?

SnuffMaster23 12. Mai 2007 15:00

Re: random()
 
Result ist der Rückgabewert der Funktion ;)
Das Ergebnig dem Funktionsnamen zuzuweisen geht in Delphi (glaub ich) nicht oder wird jedenfalls nicht empfohlen.

Aber den ersten Aufruf kannst du dir wirklich sparen, der Funktionswert verschwindet ja im Nirvana.

Dr4ke 12. Mai 2007 15:05

Re: random()
 
Zitat:

Result ist der Rückgabewert der Funktion Wink
Oh achso ;D

Zitat:

Das Ergebnig dem Funktionsnamen zuzuweisen geht in Delphi (glaub ich) nicht oder wird jedenfalls nicht empfohlen.
Es geht schon. Warum es nicht empfohlen wird weiß ich nicht.

Zitat:

Aber den ersten Aufruf kannst du dir wirklich sparen, der Funktionswert verschwindet ja im Nirvana.
Kann mir das mal jmd. näher erklären? Wenn ich das erste Addieren; weglasse habe ich keine Zufallszahl die ich addieren kann ..


Und: Gibt es eine sauberere Lösung als das ich ins Textfeld ne 0 am Anfang schreibe damit ich keinen Error kriege?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz