Autor Beitrag
Bob
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mi 19.04.06 15:37 
Servus;)

Ich versuch grad ne Art WM-Tippspiel mit Delphi zu machen. Dazu gehört natrülich,dass die Ergebnisse zufällig gewählt werden wenn man auf den Button klickt. Mein Problem ist jetzt,dass ich es nicht hinbekomme, dass in den Editfeldern die Zahlen zufällig auftreten. Ich hab zwar eine Random-Funktion ausproiert,aber das ist eine wo dann ein Text überall erscheint oder wo der irgendwo erscheint. Aber cih finde nicht dazu, wie man zufällige Zahlen in Editfelder schafft...kann mir jemand helfen oder en Tipp geben?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 19.04.06 15:39 
Moin und :welcome: im Forum!

Zeig doch mal etwas Code oder sag uns, was du bisher gemacht hast und was nicht klappt, bzw. wie du es gerne machen möchtest; so können wir dir nicht helfen, weil du zu wenig Details geliefert hast... ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
der Berliner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Mi 19.04.06 15:46 
:welcome:
Also ich versuch ihm mal trozdem zu helfen. :flehan:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
Edit1.Text:=IntToStr(Random(10));//Zufällige Zahl zwischen 1 und 10
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=IntToStr(Random(10));
end;


Gruß

_________________
[b]Ich weiß nicht immer, wovon ich rede. Aber ich weiß, dass ich recht habe.[b]
Philipp_Reitter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 430



BeitragVerfasst: Mi 19.04.06 15:56 
probiers mal damit....

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
randomize; //startet random funktion
zahl:=random(deinezahl);  // wählt eine zufällige zahl aus
edit1.text:= inttostr(zahl); // trag die zahl in den edit ein
//fallst du ncith weißt inttostr heißt Integer to String also praktisch zahl zu text umwandeln
//es gibt auch StrtoInt also wenn du ne zahl als string hast (z.b. wenn du in einen edit ne zah reinschreibst)
//dann erkännt er diesen Strin als Integer
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mi 19.04.06 16:14 
Also danke schon mal für die zahlreichen Antworten :)

DIe Random-Funtkion die ich gemeint hatte war die die unten im Quelltext ist.Hab halt noch nciht viel gemacht. Hab SPiele auf die Oberfläche geschrieben,die Editfelder erstellt und dann soll es eben für richtige Tipps Punkte geben...Bilder sollen ab eienr gewissen Punktzhahl erscheinen...aber erstmal muss ich eben Ergebnisse vorliegen haben damit die anderen Sachen ermöglicht werden können :D
Also danke schonmal für die Hilfe,ich probier das mal aus im Laufe des Tages un gebe dann mal Bescheid wie es aussieht 8)

PS: Wollt Quelltext hinzufügen...weiß net obs klappt bzw man dies macht. Wenn es net geht,das ist der Quelltext der RandomFunktion die ich benutzt habe:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
var

   I: Integer;
 begin
   Randomize;
   for I := 1 to 50 do begin
     { Ausgabe an zufälligen Positionen im Fenster }
     Canvas.TextOut(Random(Width), Random(Height), 'Fang mich!');
 
 end;
end;


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 21.04.06 15:18 
user profile iconder Berliner hat folgendes geschrieben:
:welcome:
Also ich versuch ihm mal trozdem zu helfen. :flehan:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=IntToStr(Random(10));
end;


´
Also das ging;) Jetzt krieg ich schöne Zufallsergebnisse...danke schön;) Jetzt mal ne andere Frage...ich möchte jetzt, dass wnn 2 Editfelder übereinstimmen,also wenn das Ergebnis richtig ist, dass dann in einem anderen Editfeld automatisch die punkte angezeigt werden die man dafür bekommt...bzw braucht man dafür überhaupt ein Editfeld und nicht vllt label...?
bs-Hobbit
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46

Windows Xp (Home/Prof.), Windows Server 2003, Linux
D7,D2005
BeitragVerfasst: Fr 21.04.06 15:41 
ausblenden Delphi-Quelltext
1:
2:
If edit1.text = edit2.text then
  labe11.caption := IntToStr(punkte);


wobei Punkte eine variable vom Typ Integer/byte/word/cardinal/u.a. ist
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Di 25.04.06 20:31 
Danke für den Tipp..einmal hat es auch geklappt...nur dann irgendwie nicht mehr...

Mein Quelltext waroder ist:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
If edit1.text = edit9.text then
   label25.caption := IntToStr(5)
else label25.caption := IntToStr(0);

If edit5.text = edit13.text then
   label30.caption := IntToStr(5)
else label30.caption := IntToStr(0);

If edit2.text = edit10.text then
   label26.caption := IntToStr(5)
else label26.caption := IntToStr(0);


der zeigt mir wenn ich aber die Tipps eingegeben habe und die Zufallsergebnisse erscheinen immer die 0 an. Aber irgendwie ging es schon einmal...?
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Di 02.05.06 20:56 
Hat niemand vllt ne Idee woran liegts?:)
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Di 02.05.06 21:21 
ich seh erstmal keinen Fehler


ganz sicher, dass du richtig getippt hast?
dann wärs ja logisch
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Di 02.05.06 21:23 
Also wie gesagt..er compaliert...nur auch wenn die Ergebnisse übereinstimmen zeigt er null Punkte an...
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Mi 03.05.06 14:47 
zeige mal den Rest des Quellcodes
chriss1988
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Mi 03.05.06 14:53 
versuchs mal so

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TSingleplayergame.Button1Click(Sender: TObject);
begin
randomize;
Zahl:=random(7);
edit2.text:=floattostr(zahl);

spielzahl:=strtofloat(edit1.text);
if spielzahl=Zahl then        //wenn Spielerzahl gleich zahl ist
   begin
     Spielerpunkte:=Spielerpunkte+1;      // bekommt er +1 Punkt
     label4.caption:=floattostr(Spielerpunkte);
   end;

if Spielerpunkte=5 then  //wenn spieler 5 punkte hat
   showmessage(panel1.caption+' hat gewonnen'); //hat er gewonnen
end;
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 05.05.06 13:56 
@DnC:

Also sehr viel mehr Quelltext hab ich kaum..davor halt was...der vollständige ist:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit9.Text:=IntToStr(Random(5));
Edit10.Text:=IntToStr(Random(5));
Edit11.Text:=IntToStr(Random(5));
Edit12.Text:=IntToStr(Random(5));
Edit13.Text:=IntToStr(Random(5));
Edit14.Text:=IntToStr(Random(5));
Edit15.Text:=IntToStr(Random(5));
Edit16.Text:=IntToStr(Random(5));
If edit1.text = edit9.text then
   label25.caption := IntToStr(5)
else label25.caption := IntToStr(0);

If edit5.text = edit13.text then
   label30.caption := IntToStr(5)
else label30.caption := IntToStr(0);

If edit2.text = edit10.text then
   label26.caption := IntToStr(5)
else label26.caption := IntToStr(0);

 If edit6.text = edit14.text then
   label31.caption := IntToStr(5)
else label31.caption := IntToStr(0);

If edit3.text = edit11.text then
   label27.caption := IntToStr(5)
else label27.caption := IntToStr(0);

If edit7.text = edit15.text then
   label32.caption := IntToStr(5)
else label32.caption := IntToStr(0);

If edit4.text = edit12.text then
   label28.caption := IntToStr(5)
else label28.caption := IntToStr(0);

If edit8.text = edit16.text then
   label33.caption := IntToStr(5)
else label33.caption := IntToStr(0);

end;

end.


@Chris:
Hab ich mal auf die Schnelle ausprobiert,hat aber noch nicht geklappt weil ich dann ja im Prinzip das Gerüst des Quelltexts umändern muss.Dauert bestimmt nicht so lang aber hab ich noch nicht geschafft.
Aber ich find der sieht gut aus vor allem dass dann diese Nachricht erscheint "hat gewonnen",da ich so was auch machen wollte bei einer bestimmen Punktzahl...
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mo 08.05.06 20:53 
Alsoooo..des mit den Punkten hab ich hinbekommen:)hab nur noch ein Problem...ich will,dass das programm jetzt die Teilpunkte zusammenaddiert...tut es aber nicht richtig...sondern es schreibt nur die Zahlen nebeneinander...weiß jemand wie man das beheben kann...?
DelphiAnfänger
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 112

Win XP, Firefox 2.0, IE6
Delphi 5 Prof., Delphi 2005 PE
BeitragVerfasst: Mo 08.05.06 21:06 
was hast du denn probiert was nicht geklappt hat?
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mo 08.05.06 21:10 
Ich habe zum Beispiel geschrieben:

label1.caption + label2.caption + label3.caption usw...

beispiel is dann:

5 + 0 + 5

und statt er addiert und 10 schreibt schreibt er:

505...
DelphiAnfänger
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 112

Win XP, Firefox 2.0, IE6
Delphi 5 Prof., Delphi 2005 PE
BeitragVerfasst: Mo 08.05.06 21:28 
du kannst keine strings addieren du musst sie vorher umwandel die einfache Variante ist:
ausblenden Delphi-Quelltext
1:
lbAusgabe.caption:=floattostr(strtofloat(label1.caption)+strtofloat(label2.caption)+strtofloat(label3.caption))					

etwas komplizierter aber übersichtlicher ist folgende variante:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.addiere;
VAR 
 iZahl1, iZahl2, iZahl3, iErgebnis:real; //wenn es nur ganze zahlen sind kannst du auch integer nehmen
begin
 iZahl1:=strtofloat(label1.caption); //wenn du integer genommen hast schreibst du strtoint
 iZahl2:=strtofloat(label2.caption); //wenn du integer genommen hast schreibst du strtoint
 iZahl3:=strtofloat(label3.caption); //wenn du integer genommen hast schreibst du strtoint
 iErgebnis:=iZahl1+iZahl2+iZahl3;
 lbAusgabe.caption:=floattostr(iErgebnis); //wenn du integer genommen hast schreibst du inttostr
end;
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mo 08.05.06 21:46 
Ok...danke schön...muss ich dann mal probieren morgen :)
Bob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Do 18.05.06 16:46 
Also ich bin jetzt eigentlich so gut wie fertig:) Danke schon mal an alle die mir mal irgendwie geholfen haben. Nur ein Problem hab ich noch.
Ich möchte am ende jetzt eine while Schleife einbauen die wie folgt aussieht:
ausblenden Delphi-Quelltext
1:
2:
3:
while StrToFloat(label34.caption) >=15  do

Image1.Picture.LoadFromFile('pokal.bmp');


Das heisst ja wenn laben34.caption größer gleich 15 ist, dass dann das Bild erscheinen soll.Nur sobald die Zahl größer gleich 15 ist, hängt sich das programm auf und ich kann nur Programm zurück setzen machen. Wenn ich allerdings diesen Befehl außerhalb der Schleife verwende, dann funkitoniert es...hat jemand eine Idee woran es liegen kann?