Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Zufallszahl erzeugen und den Wert in Label anzeigen (https://www.delphipraxis.net/136638-zufallszahl-erzeugen-und-den-wert-label-anzeigen.html)

Say1k 4. Jul 2009 21:41


Zufallszahl erzeugen und den Wert in Label anzeigen
 
hi
ich habe einen button und ein label
wenn ich nun auf den button klicke soll über random eine zahl zwischen 1 und 3 herrauskommen
benutze ich bei button.klick aber nun folgenden code:
Delphi-Quellcode:
label1.caption := round(random*3);
so wird angezeigt das string nicht zu integer64 passt

wie kann ich das beheben?

[edit=SirThornberry]aussagekräftigen Titel vergeben - Mfg, SirThornberry[/edit]

divBy0 4. Jul 2009 21:46

Re: Simple frage zur ramdom ausgabe
 
Du musst den Integer in einen String wandeln und random richtig verwenden. :-D

Delphi-Quellcode:
label1.caption := IntToStr(random(3));
Im Form.Create randomize; aufrufen.

turboPASCAL 4. Jul 2009 21:50

Re: Simple frage zur ramdom ausgabe
 
Hi,

Erster Fehler:
Delphi-Quellcode:
label1.caption := round(random*3);
Du weist einem String einen Integer zu, also inkompatibele Typen.

Richtig währe es einem String einen Stringtypen zu zuweisen:
Delphi-Quellcode:
label1.caption := IntToStr( round(random*3) );
Nun zu dienem "zahl zwischen 1 und 3"-Problem, random(X)
gibt eine zahl zwischen Null und kleiner X zurück.

Richtig müsste es demnach heissen:
Delphi-Quellcode:
label1.caption := IntToStr( 1 + random(3) );

Satty67 4. Jul 2009 21:52

Re: Simple frage zur ramdom ausgabe
 
Der Vollständigkeit halber
Delphi-Quellcode:
Label1.Caption := IntToStr(Random(3) + 1);
Random(x) ergibt x Zufallszahlen, beginnend bei 0

€: Ok, war einer schneller... sollte nicht nebenher TV schauen ;)

Say1k 4. Jul 2009 22:11

Re: Simple frage zur ramdom ausgabe
 
ok das problem ist behoben und ich bleibe ruhig bei 0-2 das ist egal ich brauche nur 3 verschiedene ;)

nun zum nächsten:
mein problem liegt darin, dass ich gerne in den im quelltext erläuterten logs nicht die zahlen 0, 1 und 2 stehen haben möchte sondern die farben grün für 0, 1 für gelb und 2 für rot als worte
gleichzeitig sollen die labels zu den worten die passende farbe erhallten
klartext: random zahl ist zum beispiel=1 und ich drücke auf log
momentan= im passenden label erscheint die zahl 1 gelogt
so wie es sein soll= das passende label erhällt die farbe gelb und als labeltext steht 'Gelb'


wie ist das machbar?

erstmal mein quelltext mit hoffentlich guter erklährung:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label9.caption := IntToStr(random(3));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
end;

//gut das kommt ja von euch fürs random

procedure TForm1.Neu1Click(Sender: TObject);
begin
label1.caption := '';
label2.caption := '';
label3.caption := '';
label4.caption := '';
label5.caption := '';
label6.caption := '';
label7.caption := '';
label8.caption := '';
end;

//das hier löscht meine logs   die logs werden gleich erklährt

{nun folgend sind buttonklicks die die zahl, die gerade als random in label 9 ausgegeben wurde in ein log-label eingibt,wie ein speicherplatz}

procedure TForm1.Button2Click(Sender: TObject);
begin
label1.caption := label9.caption;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
label2.caption := label9.caption;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
label3.caption := label9.caption;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
label4.caption := label9.caption;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
label5.caption := label9.caption;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
label6.caption := label9.caption;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
label7.caption := label9.caption;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
label8.caption := label9.caption;
end;

SirThornberry 4. Jul 2009 22:14

Re: Simple frage zur ramdom ausgabe
 
könntest du bitte für eine neue Frage ein neues Thema aufmachen? Bei der jetzigen Frage ist bereits das Problem das der Titel recht wenig über das Problem aussagt. Wenn du jetzt eine weitere Frage stellst und der Titel nichts über das Problem aussagt findet jemand mit gleichem Problem über die Suche nichts. Daher mache bitte pro Frage ein neues Thema auf und verwende einen aussagekräftigen Titel. Danke :)

Say1k 4. Jul 2009 22:20

Re: Zufallszahl erzeugen und den Wert in Label anzeigen
 
ich habs in nem neuen mit titel ausgemacht dann kann das hier geschlossen werden


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.

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