Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem bei Quiz - Punkte zählen
M - Mi 21.03.07 11:16
Titel: Problem bei Quiz - Punkte zählen
Hi, hab ein Problem. Muss für die Schule ein Quiz erstellen. An sich ist s fast fertig, wir müssen nur noch die Punkte zählen lassen. Problem is, wi bekomme ich heraus, welchen Button der user angeklickt hat?
Bitte um schnelle Antwort!!!
UGrohne - Mi 21.03.07 11:20
Wie ist denn das Quiz aufgebaut? RadioButtons, CheckBoxen? Eigentlich musst Du nur beispielsweise mittels CheckBox1.Checked auslesen, ob eine CheckBox angehakt wurde und überprüfen, ob das so korrekt ist. Danach kannst Du Punkte vergeben.
Und bitte ändere den Titel des Threads, denn der sagt nicht wirklich etwas über Deine Frage aus.
M - Mi 21.03.07 11:23
Das Quiz is mit normalen Buttons. Wenn ein Button angeklickt wurde, dann soll kontrolliert werde, ob die Antwort richtig is oder nicht.
ZeitGeist87 - Mi 21.03.07 11:28
Hallo!
Wie ist das Quiz denn aufgebaut?
Über Records?
Wie läuft das Ganze ab?
Jede Frage ne neue Form oder werden einfach die Buttons, etc. aktualisiert?
LG
Stefan
UGrohne - Mi 21.03.07 11:42
M hat folgendes geschrieben: |
| Das Quiz is mit normalen Buttons. Wenn ein Button angeklickt wurde, dann soll kontrolliert werde, ob die Antwort richtig is oder nicht. |
Dann musst Du natürlich einen entsprechenden Event Handler schreiben. Klicke dazu einfach auf einen der Buttons doppelt drauf, dann kannst Du dort überprüfen, ob es der richtige Button war, oder nicht und dementsprechend einen Punkt geben oder nicht.
Mittels des Sender-Parameters dieses Event Handlers kannst Du dann alles auch eine Prozedur packen. Du weißt dann jedem Button einfach die Prozedur als Event Handler für OnClick zu und überprüfst, welcher Button geklickt wurde, beispielsweise mit folgendem Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure ButtonClick(Sender:TObject); var richtigerButton: TButton; begin richtigerButton := Button1; if (Sender = richtigerButton) then Inc(punkte); end; |
Die Variable kannst Du natürlich auch global deklarieren, dann kannst Du sie in einer Initialisierungs-Prozedur, wo Du beispielsweise die Texte der Buttons änderst, setzen.
M - Mi 21.03.07 11:57
also wir haben das jetzt so gemacht, dass es mit checkboxen arbeitet.
allerdings ist dadurch ein neues problem aufgetreten.
und zwar kann man jetzt die antwort anklicken und die punkte werden wahrscheinlich auch gezählt, aber das programm springt nicht zur nächsten frage..
wie kann man das jetzt noch lösen?
ZeitGeist87 - Mi 21.03.07 12:04
Beantworte die Fragen in meinem Post und wir können euch helfen!
LG
Stefan
Comp-Freak - Mi 21.03.07 12:10
sehr einfach und sehr lang:
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:
| var frage: integer; richtig: integer;
on some form create: label1.caption := listbox1.items.strings(0); antwort := listbox2.items.strings(0);
on antwort button click: if checkbox1.checked = true then begin if antwort = 1 then richtig := richtig+1; frage := frage+1; label1.caption := listbox1.items.strings(frage); antwort := listbox2.items.strings(frage); end; if checkbox2.checked = true then begin if antwort = 2 then richtig := richtig+1; frage := frage+1; label1.caption := listbox1.items.strings(frage); antwort := listbox2.items.strings(frage); end; if checkbox3.checked = true then begin if antwort = 3 then richtig := richtig+1; frage := frage+1; label1.caption := listbox1.items.strings(frage); antwort := listbox2.items.strings(frage); end; |
stat dehn zwei listboxen gehen naturlich auch stringlists.
Moderiert von
Gausi: Delphi-Tags hinzugefügt
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!