Problem bei Quiz - Antwort überprüfen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
wahlberlinerin
Beiträge: 8
Registriert: Fr 19. Feb 2016, 13:40

Problem bei Quiz - Antwort überprüfen

Beitrag von wahlberlinerin »

Ich muss für meinen Informatikkurs ein Quiz programmieren und weiß leider nicht wie ich einbaue, dass das Programm abfragt, welcher RadioButton geklickt wurde.
Bis jetzt habe ich dies:

Code: Alles auswählen

with Frage[random(Length(Frage))] do begin
    if (not schonGefragt) and (Kategorie=1) then
    begin
      RadioGroup1.Caption := Frage;
      Radiobutton1.Caption := Antworten[1];
      Radiobutton2.Caption := Antworten[2];
      Radiobutton3.Caption := Antworten[3];
      Radiobutton4.Caption := Antworten[4];
      schonGefragt:=True;
      a:=richtige_Antwort;
      b:=Antworten[a];
      if (Sender is TRadiobutton) then
      if (Radiobutton1.caption=b) and (Radiobutton1.checked) or
      (Radiobutton2.caption=b) and (Radiobutton2.checked) or
      (Radiobutton3.caption=b) and (Radiobutton3.checked) or
      (Radiobutton4.caption=b) and (Radiobutton4.checked)
      then smr else sf;
      end;
    end;     


Wenn ich Sender herausnehme, kommt sofort eine Showmessage mit "Leider falsch" (sf). Mit Sender macht er leider gar nichts. Kann mir dabei bitte jemand helfen?

Mathias
Beiträge: 6918
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem bei Quiz - Antwort überprüfen

Beitrag von Mathias »

Mir ist ein Rätsel, wieso du die Caption des RadioButtons abfragst.

Vielleicht hilft dir dies weiter: http://wiki.freepascal.org/TRadioButton/de

PS: Irgendwie kommt mit dieser Code recht bekannt vor, hatten wir nicht schon mal einen Thread davon ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wahlberlinerin
Beiträge: 8
Registriert: Fr 19. Feb 2016, 13:40

Re: Problem bei Quiz - Antwort überprüfen

Beitrag von wahlberlinerin »

Ich frage ab, ob die Caption die der richtigen Antwort ist. Ja, hatten wir, hab es jetzt stundenlang probiert gehabt und verzweifle ein bisschen... Mein Problem ist eigentlich auch nur, warum er bei Sender is TRadioButton gar nicht auf einen Klick reagiert.

Mathias
Beiträge: 6918
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem bei Quiz - Antwort überprüfen

Beitrag von Mathias »

Ist doch gar nicht so schwer, für etwas hast du die Variable richtige_Antwort.

Code: Alles auswählen

procedure TForm1.ButtonNeueFrageClick(Sender: TObject);
begin
  FrageNr := random(Length(Frage));
  with Frage[FrageNr] do begin
    Label1.Caption := Frage;
    RadioButton1.Caption := Antworten[0];
    RadioButton2.Caption := Antworten[1];
    RadioButton3.Caption := Antworten[2];
    RadioButton4.Caption := Antworten[3];
    schonGefragt := True;
  end;
end;
 
procedure TForm1.ButtonTestenClick(Sender: TObject);
 
  procedure Test(a: boolean);
  begin
    if a then begin
      ShowMessage('richtig');
    end else begin
      ShowMessage('falsch');
    end;
  end;
 
begin
  case Frage[FrageNr].richtige_Antwort of
    0: begin
      Test(RadioButton1.Checked);
    end;
    1: begin
      Test(RadioButton2.Checked);
    end;
    2: begin
      Test(RadioButton3.Checked);
    end;
    3: begin
      Test(RadioButton4.Checked);
    end;
  end;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten