Hi Comm.,
vorab ich bin Anfänger und ich muss mit einem Kumpel in meiner Schule ein Programm schreiben, für die 3. und 4. Klässler.
Es soll dem Technick-und-Computer-Unterricht dienen! Ich bin für das Quiz dann verantwortlich...
Und da ergibt sich gleich meine Frage zu dem Quelltext:
Wie man sieht soll es mehrere Fragen geben, wo dann zufällig eine gezogen wird! Und dann dementsprechend bekommt man Punkte oder auch nicht
Wenn ich das Programm teste zählt er zweimal die drei Punkte dazu obwohl ich das gar nicht so deklariert hab. Ich bin mehrmals Schritt für SChritt durchgegangen aber zu keinem Ergebnis gekommen!
Mich macht das fertig.. ich kapier den Fehler nich (bzw. find)! wäre euch dankbar wenn jemand sich die Zeit nimm und den quelltext mal analysiert

(P.S: x ist global deklariert)
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: 57: 58: 59: 60:
| procedure fragen; begin x:=random(2)+1; if x=1 then begin Form1.Label1.Caption:=('Welche Lampe wird heller leuchten?'); Form1.Label2.Caption:=('(3Punkte)'); Form1.RadioGroup1.Items[0]:='Lampe 1'; Form1.RadioGroup1.Items[1]:='Lampe 2'; Form1.RadioGroup1.Items[2]:='keine leuchtet'; Form1.RadioGroup1.Items[3]:='beide leuchten gleich'; end;
if x=2 then begin Form1.Label1.Caption:='Was ist das für ein Element des Stromkreises?'; Form1.Label2.Caption:='(3Punkte)'; Form1.RadioGroup1.Items[0]:='Schalter'; Form1.RadioGroup1.Items[1]:='Lampe'; Form1.RadioGroup1.Items[2]:='Motor'; Form1.RadioGroup1.Items[3]:='Klingel'; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin randomize; Label4.Caption:='0'; fragen; end;
procedure TForm1.BitBtn1Click(Sender: TObject); var punkte : integer; begin punkte:=0; if ((x=1) and (RadioGroup1.itemindex=0)) then begin punkte:=punkte+3; showmessage('Richtig! Du bekommst 3 Punkte!'); Label4.Caption:=inttostr(punkte); end; if ((x=1) and (RadioGroup1.itemindex<>0)) then begin showmessage('Falsch! Weiter zur nächsten Frage'); end;
if ((x=2) and (RadioGroup1.itemindex=1)) then showmessage('Richtig! Du bekommst 3 Punkte!'); begin showmessage('Richtig! Du bekommst 3 Punkte!'); punkte:=punkte+3; Label4.Caption:=inttostr(punkte); end; if ((x=2) and (RadioGroup1.itemindex<>1)) then begin showmessage('Falsch! Weiter zur nächsten Frage'); Image5.Visible:=true; end; |
Moderiert von
Gausi: B- durch Delphi-Tags ersetzt