![]() |
random()
Wie stelle ich es an das random() min. 1 raussucht und nicht 0?
|
Re: random()
Delphi-Quellcode:
oder randomRange
random(maxZahl) +1
grüße Klaus |
Re: random()
Zitat:
Delphi-Quellcode:
oder
Random(MaxZahl - 1) + 1
Delphi-Quellcode:
Succ(Random(Pred(MaxZahl)))
|
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? |
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.
|
Re: random()
Zitat:
Und danke für die Hifle mit dem Textfeld. Ich werde jetzt einfach ne 0 reinschreiben, oder gibt es eine sauberere möglichkeit? |
Re: random()
Probier mal
Delphi-Quellcode:
Addieren := random(6)+1; ist BASIC-Syntax ;)
function TForm1.Addieren : integer;
begin Result := random(6)+1; end; |
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?
|
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. |
Re: random()
Zitat:
Zitat:
Zitat:
Und: Gibt es eine sauberere Lösung als das ich ins Textfeld ne 0 am Anfang schreibe damit ich keinen Error kriege? |
Re: random()
Delphi-Quellcode:
Vermutlich willst du das.
procedure TForm1.btnWuerfelnClick(Sender: TObject);
var ergebnis, tmp : integer; begin tmp := StrToInt(edtAnzahl.text); if tmp = 0 then ergebnis := Addieren else ergebnis := tmp + Addieren; edtAnzahl.Text := IntToStr(ergebnis); end; function TForm1.Addieren : integer; begin Result := random(6)+1; end; |
Re: random()
Eben nicht ;D
Wenn das Textfeld leer ist und man "würfelt" kriegt man ne Fehlermeldung: " ist kein gültiger Integerwert. Wenn ich vorher ne 0 reinschreibe gehts. Wie kann ich es anstellen das es leer ist und trotzdem kein Error kommt? |
Re: random()
Delphi-Quellcode:
procedure TForm1.btnWuerfelnClick(Sender: TObject);
var ergebnis, tmp : integer; begin if Trim(edtAnzahl.Text) = '' then tmp := 0 else tmp := StrToInt(edtAnzahl.Text); ergebnis := tmp + Addieren; edtAnzahl.Text := IntToStr(ergebnis); end; |
Re: random()
oder so:
Delphi-Quellcode:
Grüße
procedure TForm1.btnWuerfelnClick(Sender: TObject);
var ergebnis,ErrorCode : integer; begin val(edtAnzahl.text,ergebnis,ErrorCode); if ErrorCode <> 0 then ergebnis := Addieren else ergebnis := ergebnis + Addieren; edtAnzahl.Text := IntToStr(ergebnis); end; function TForm1.Addieren : integer; begin Result := random(6)+1; end; Klaus |
Re: random()
Zitat:
ist normale Pascal Syntax und macht keinen Unterschied zu Result := ... Result gibt es erst ab Turbo Pascal ;) |
Re: random()
gib mal 'nen Buchstaben ein ... dann gibt's wieder 'ne Fehlermeldung :zwinker:
dann lieber so ^^
Delphi-Quellcode:
procedure TForm1.btnWuerfelnClick(Sender: TObject);
var ergebnis : integer; begin ergebnis := StrToIntDef(edtAnzahl.Text, 0) + Addieren; edtAnzahl.Text := IntToStr(ergebnis); end; In Zuweisung geht schon an den Funkionsnamen, nur kann man da nichts auslesen Zitat:
Code:
function TForm1.Addieren : integer;
begin Addieren := 1; Addieren := [color=#ff0000][b]Addieren[/b][/color] + 1; // beim Roten wird die Function // aufgerufen und nicht das Ergebnis ausgelesen Result := 1; Result := Result + 1; end; |
Re: random()
Zitat:
|
Re: random()
Man kann keine Buchstaben eingeben, das Textfeld ist deaktiviert. ;)
So, mein Problem ist gelöst, danke an alle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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