Alex Duschek
möp
Ich wollte gerade ein kleines Quiz zusammenbasteln,klappt soweit auch ganz gut jedoch gibts ein Problem.Am Anfang holt man sich durch den Button "Spiel starten" die erste Frage,die Antworten kann man per Radiobutton auswählen.Beim Klick auf den Checkbutton kommt entweder ne Fehlermeldung,weil die Antwort falsch ist oder eine Bestätigung der richtigen Antwort und danach kommt gleich die nächste Frage.
Problem dabei:
Der Radiobutton ist immer noch markiert und deshalb kommt dann sofort die Meldung,dass die Antwort falsch ist,sobald die nächste Frage da ist,ohne dass der Benutzer eine Antwort auswählen kann.Gibts ne Möglichkeit,den Button unchecked zu machen,bevor die Frage geholt wird?
PS: Ich bin Anfänger,also gibts sicher ne Möglichkeit,den Code eleganter zu schreiben
PS2: Ich hätt noch die Möglichkeit,einen Button zum Antwort überprüfen zu machen und einen eigenen zum sich eine neue Frage zu holen,aber zuerst wollte ich eben fragen,ob es auch anders geht
Ein Dankeschön schick ich schonmal vorraus
Nachtrag: Dummerweise wird der Code nicht angezeigt,Gott weiß warum,ich hab ihn schnell hochgeladen,falls er nützlich sein sollte
Quelltext
Problem dabei:
Der Radiobutton ist immer noch markiert und deshalb kommt dann sofort die Meldung,dass die Antwort falsch ist,sobald die nächste Frage da ist,ohne dass der Benutzer eine Antwort auswählen kann.Gibts ne Möglichkeit,den Button unchecked zu machen,bevor die Frage geholt wird?
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Menus;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Memo1: TMemo;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
Button1: TButton;
MainMenu1: TMainMenu;
Einstellungen1: TMenuItem;
SpielStarten1: TMenuItem;
Beenden1: TMenuItem;
Info1: TMenuItem;
procedure Einstellungen1Click(Sender: TObject);
procedure Info1Click(Sender: TObject);
procedure SpielStarten1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
fragenzaehler:integer;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Einstellungen1Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TForm1.Info1Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.SpielStarten1Click(Sender: TObject);
begin
fragenzaehler := 1;
Form1.Memo1.Text := 'Löse folgende Gleichung nach x auf: 4x + 26 = 5x - 3';
Form1.RadioButton1.Caption := 'Ergebnis: x = 44';
Form1.RadioButton2.Caption := 'Ergebnis: x = 29';
Form1.RadioButton3.Caption := 'Ergebnis: x = 38';
Form1.RadioButton4.Caption := 'Ergebnis: x = 13';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
If Fragenzaehler = 1 Then
If Form1.RadioButton2.Checked = True Then
Begin
Radiobutton2.Checked := False;
Showmessage('Diese Antwort ist korrekt :-)');
Fragenzaehler := 2;
Form1.Memo1.Text := 'Wie lautet der Satz des Pythagoras?';
Form1.RadioButton1.Caption := 'ax² + bx + c = 0';
Form1.RadioButton2.Caption := 'h² = p * q';
Form1.RadioButton3.Caption := 'A = 1/2 * c * h';
Form1.RadioButton4.Caption := 'c² = a² + b²';
end
Else
Showmessage('Die Antwort ist leider falsch.Versuche es erneut.')
else
Showmessage('Bitte zuerst das Spiel starten.');
If Fragenzaehler = 2 Then
If Form1.RadioButton3.Checked = True Then
Begin
Showmessage('Diese Antwort ist korrekt :-)');
Fragenzaehler := 3;
Form1.Memo1.Text := 'Wie lautet der Satz des Pythagoras?';
Form1.RadioButton1.Caption := 'ax² + bx + c = 0';
Form1.RadioButton2.Caption := 'h² = p * q';
Form1.RadioButton3.Caption := 'A = 1/2 * c * h';
Form1.RadioButton4.Caption := 'c² = a² + b²';
end
Else
Showmessage('Die Antwort ist leider falsch.Versuche es erneut.')
end;
end.
PS: Ich bin Anfänger,also gibts sicher ne Möglichkeit,den Code eleganter zu schreiben

PS2: Ich hätt noch die Möglichkeit,einen Button zum Antwort überprüfen zu machen und einen eigenen zum sich eine neue Frage zu holen,aber zuerst wollte ich eben fragen,ob es auch anders geht

Ein Dankeschön schick ich schonmal vorraus

Nachtrag: Dummerweise wird der Code nicht angezeigt,Gott weiß warum,ich hab ihn schnell hochgeladen,falls er nützlich sein sollte

Quelltext
Zuletzt bearbeitet: