Entwickler-Ecke
Sonstiges (Delphi) - Fehler im Quelltext nicht auffindbar,WürfelspielMit 2 Würfel
Anfänger007 - Di 22.06.10 20:56
Titel: Fehler im Quelltext nicht auffindbar,WürfelspielMit 2 Würfel
Ich habe die Aufgabe in der 11. Klasse, ein Projekt zu entwerfen, bei dem 2 Würfel geworfen werden.
Der Einsatz und das Kapital sollen dabei ebenfalls beachtet werden.
Das restliche Kapital ebenfalls, wie ich das darstelle ist mir leider auch nicht bewusst.
Nun kann ich meine Fehler nicht finden, ständig werden mir Fehlermeldungen angezeigt, die ich nicht nachvollziehen kann..
ich bitte um dringende Hilfe!
Danke schon mal im vorraus.
Moderiert von
Gausi: Topic aus Job Börse verschoben am Di 22.06.2010 um 21:07
Gausi - Di 22.06.10 21:08
Hallo und :welcome: in der Entwickler-Ecke,
nur mit der .dpr-Datei kann man da relativ wenig sagen. Die .pas und .dfm wären auch noch nötig. ;-)
Anfänger007 - Di 22.06.10 21:10
das heißt jetzt für mich, dass ich unit und project hochladen muss?
vom programmieren habe ich leider sehr wenig ahnung, habe mich mit einer 3 durch das jahr gekämpft :D
Delete - Di 22.06.10 21:10
Warum nennst du uns nicht einfach die Fehlermeldungen und postest die zugehörigen Codestellen?
Anfänger007 - Di 22.06.10 21:12
ist es in ordnung, wenn ich den ganzen quelltext einfüge, oder nur die passenden stellen?
denn ohne einen überblick könnte ich mir darüber auch nichts vorstellen :)
---
Moderiert von
Narses: Beiträge zusammengefasst---
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: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| procedure TForm1.Button1Click(Sender: TObject); var einsatz, faktor, wurf1, wurf2, augensumme, kapital: integer;
begin randomize; edit1.text:='(Einsatz)'; wurf1:=random(6)+1; wurf2:=random(6)+1; augensumme:=wurf1+wurf2; end;
<span style="color: red">erste fehlermeldung:</span> <span style="color: red">if</span> augensumme = 2,3,4,5,6 then begin edit1.text:='Einsatz verloren'; faktor:=0; end;
if augensumme = 7,8,9 then begin edit1.text:='Einsatz zurück'; faktor:=1; end;
if augensumme = 10 then begin edit1.text:='Einsatz verdoppelt'; faktor:=2; end;
if augensumme = 11 then begin edit1.text:='Einsatz verdreifacht'; faktor:=3; end;
if augensumme = 12 then begin edit1.text:='Einsatz vervierfacht'; faktor:=4; end;
if wurf1 = 1 then begin edit1.text:='Eins' ; image1.show; image2.hide; end; if wurf1 = 2 then begin edit1.text:='Zwei' ; image2.show; image8.hide; end; if wurf1 = 3 then begin edit1.Text:='Drei' ; image3.show; image9.Hide; end; if wurf1 = 4 then begin edit1.Text:='Vier' ; image4.Show; image10.Hide; end; if wurf1 = 5 then begin edit1.Text:='Fünf' ; image5.Show; image11.Hide; end; edit1.text:=inttostr(faktor*einsatz); if kapital = 0 then button2.show;
procedure TForm1.Button3Click(Sender: TObject); begin close; end;
procedure TForm1.Button2Click(Sender: TObject); var kapital: integer; begin if kapital=0 then button2.show; end;
end. |
Moderiert von
Narses: Delphi-Tags hinzugefügt
Georg08 - Di 22.06.10 21:33
Kannst du das ganze mal bitte in schöne Delphi-Tags setzen und mir sagen warum da ein If herumschwebt :D
+
Die Fehlermeldung :D
Edit:
Delphi-Tags heißt, dass du vor deinen Code und hinter deinen Code <span class="inlineSyntax"><span class="codecomment">{PROTECTTAGd62d1cc776214060fa2b9d70a8fb830a}</span></span> setzt...
Anfänger007 - Di 22.06.10 21:47
wenn die gewürfelte Augenzahl gleich 2..6 ist, dann soll in dem editfeld der text "einsatz verloren" erscheinen.
Fehlermeldung in Delphi: Unit1.pas (62): Deklaration erwartet, aber 'IF' gefunden.
Delete - Di 22.06.10 21:48
1. Wo sind jetzt Fehlermeldungen?
2. Guck dir in einem Grundlagentutorial oder in einem Buch mal an, wie man mehrere Bedingungen miteinander verknüpft.
ALF - Di 22.06.10 21:49
Hi, in welcher Procedure stehen deine ganzen if Anweisungen?
ich meine die zwischen:
Delphi-Quelltext
1: 2: 3:
| procedure TForm1.Button1Click(Sender: TObject); .... end; |
und
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| if augensumme = 2,3,4,5,6 then begin edit1.text:='Einsatz verloren'; faktor:=0; end;
if augensumme = 7,8,9 then begin edit1.text:='Einsatz zurück'; faktor:=1; end; |
usw.
Delphi-Quelltext
1: 2: 3:
| procedure TForm1.Button3Click(Sender: TObject); ..... end; |
Gruss Alf
ZeitGeist87 - Di 22.06.10 21:51
Schau dir einfach
CASE an ;-)
Anfänger007 - Di 22.06.10 21:57
Der eintrag mit den Grundlagen zur Gewinnbestimmung ist alles in der procedure des button1.
ALF - Di 22.06.10 22:00
Anfänger007 hat folgendes geschrieben : |
| Der eintrag mit den Grundlagen zur Gewinnbestimmung ist alles in der procedure des button1. |
Schau mal richtig hin :wink: daher auch die Fehlermeldung in Delphi: Unit1.pas (62):
Deklaration erwartet, aber 'IF' gefunden
Gruss Alf
Delete - Di 22.06.10 22:01
Anfänger007 hat folgendes geschrieben : |
| Der eintrag mit den Grundlagen zur Gewinnbestimmung ist alles in der procedure des button1. |
Nö:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Button1Click(Sender: TObject); var einsatz, faktor, wurf1, wurf2, augensumme, kapital: integer; begin randomize; edit1.text:='(Einsatz)'; wurf1:=random(6)+1; wurf2:=random(6)+1; augensumme:=wurf1+wurf2; end;
if augensumme = 2,3,4,5,6 then begin edit1.text:='Einsatz verloren'; faktor:=0; end; |
Formatiere deinen Quelltext mal sauber, dann siehst du auch, was wozu gehört.
Anfänger007 - Di 22.06.10 22:03
tut mir leid, nun blicke ich gar nicht mehr durch .. :(
ALF - Di 22.06.10 22:08
ok,
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm1.Button1Click(Sender: TObject); var einsatz, faktor, wurf1, wurf2, augensumme, kapital: integer; begin randomize; edit1.text:='(Einsatz)'; wurf1:=random(6)+1; wurf2:=random(6)+1; augensumme:=wurf1+wurf2; end; if augensumme = 2,3,4,5,6 then begin edit1.text:='Einsatz verloren'; faktor:=0; end; .... .... .... if kapital = 0 then button2.show; |
Gruss Alf
Delete - Di 22.06.10 22:11
Zum einem müssen deine if-Abfragen mit in die ButtonClick Prozedur, so wie du sie hast, hängen sie lose irgendwo in der Unit rum, was natürlich nicht sein darf. Anweisungen können nur in einer Prozedur oder Funktion liegen. aber das sollte man spätestens in der zweiten Stunde gelernt haben.
Zum anderem guck dir mal an, wie man mehrere Bedingungen miteinander verknüpft bzw. guck dir mal das Schlüsselwort case an.
Anfänger007 - Di 22.06.10 22:12
alles klar, dankeschön!
ERSTER fehler beseitigt :s
weitere Fehlermeldung:
if augensumme = 2..6 then begin edit1.text:='Einsatz verloren';
[Fehler] Unit1.pas(62): 'THEN' erwartet, aber '..' gefunden
FinnO - Di 22.06.10 22:15
versuche mal:
Delphi-Quelltext
1:
| if augensumme in [2..6] then ... |
ALF - Di 22.06.10 22:16
Wollte ich vorhin noch dazu schreiben das es gleich zum nächsten fehler kommt :wink:
Delphi-Quelltext
1: 2: 3: 4: 5:
| if augensumme = 2..6 then begin edit1.text:='Einsatz verloren'; ... end; |
muss so sein:
Delphi-Quelltext
1:
| if (augensumme = 2) or (augensumme = 3) then |
und alle sagen Dir, schau dir mal case an, ist besser als if für diese Zwecke!!!!
Gruss Alf
Anfänger007 - Di 22.06.10 22:19
woooooow, ein fehler bleibt noch übrig :)
procedure TForm1.Button3Click(Sender: TObject);
[Fehler] Unit1.pas(95): Anweisung erwartet, aber 'PROCEDURE' gefunden.
ALF - Di 22.06.10 22:37
Würde sagen, nun hast Du irgendwo ein if oder x:= evtl. zu wenig? zB a:= (b*c), und Du hast (b*c) stehen???
Gruss Alf
ZeitGeist87 - Di 22.06.10 23:39
Oder ein end;
JoelH - Mi 23.06.10 10:13
deinem Codefragment entnehme ich, dass da ein end; fehlt
ZeitGeist87 - Mi 23.06.10 11:01
JoelH hat folgendes geschrieben : |
| deinem Codefragment entnehme ich, dass da ein end; fehlt |
Bzw. dass das erste
end; fehl am Platz ist.
Georg08 - Mi 23.06.10 14:50
end; vergessen?
Edit:
Sorry, hab die Seite nicht neu geladen, antwort kam ja schon :oops:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!