Einzelnen Beitrag anzeigen

AquaMari

Registriert seit: 23. Apr 2015
7 Beiträge
 
Delphi 4 Standard
 
#1

Multiple Choice Quiz--> Antwort-Positionen zufällig auswählen

  Alt 23. Apr 2015, 19:18
Hallo Forum,

ich versuche einen Multiple Choice-Quiz mit Delphi 4 zu programmieren. Ich habe schon die Fragen, die Antwortmöglichkeiten und die richtigen Antworten mit Hilfe von Feldern hingeschrieben und wenn man auf den 'weiter' Button drauf klickt kommt man zur nächsten Frage mit die jeweiligen Antwortmöglichkeiten (4), die ich im laufendem Programm mit Checkboxen erzeugt habe.

Diese Antworten haben bei jeder Frage aber immer die selbe Position. Zum Beispiel der richtige Antwort ist immer bei der ersten Checkbox zu sehen und das möchte ich ändern. Ich möchte also,dass jedes mal wenn man auf den 'weiter' Button klickt die Antworten ihre Positionen ändern.

Wie kann ich das nun anstellen?

Im Anhang befindet sich ein Bild wie das Programm ausschaut !

Danke im Voraus!

Lg,
AquaMari



und unten ist der Quell-Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Panel1: TPanel;
    Label1: TLabel;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure GroupBox1Click(Sender: TObject);
   

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  check:array[1..4] of Tcheckbox;
  fragen : array [1..4] of string;
  antworten : array [1..16] of string;
  r_antworten : array [1..7] of string;
  i,frage:integer;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var i,b:integer;
begin
b:=0;

frage:=0;

fragen[1]:='1. Zu welchem großen Reich gehörte Österreich ab dem Jahre Null fast 500 Jahre lang?';
fragen[2]:='2. Die Staatsgebiete welcher heutigen Staaten geho¨rten im Laufe der Geschichte zeitweise zum Kaiserreich Österreich?';
fragen[3]:='3. Welche der Religionen waren 1918 (Ende der Monarchie) in Österreich-Ungarn offiziell anerkannt?';
fragen[4]:='4. Wer wurde nach dem "Anschluss" von Österreich an Hitler-Deutschland verfolgt?';

antworten[1]:='Zum Römischen Reich';
antworten[2]:='Zum Ägyptischen Reich';
antworten[3]:='Zum Chinesischen Reich';
antworten[4]:='Zum Persischen Reich';

antworten[5]:='Slowakei';
antworten[6]:='Kroatien';
antworten[7]:='Ungarn';
antworten[8]:='Finnland';

antworten[9]:='Konfuzianismus';
antworten[10]:='Islam';
antworten[11]:='Judentum';
antworten[12]:='Buddhismus';

antworten[13]:='Juden';
antworten[14]:='Roma und Sinti';
antworten[15]:='Menschen mit Behinderung';
antworten[16]:='Nationalsozialisten';



r_antworten[1]:='Zum Römischen Reich';

r_antworten[2]:='Slowakei';
r_antworten[3]:='Kroatien';
r_antworten[4]:='Ungarn';

r_antworten[5]:='Islam';

r_antworten[6]:='Juden';
r_antworten[7]:='Menschen mit Behinderung';

groupbox1.caption:=fragen[1];

For i:=1 to 4 do

begin

     check[i]:=Tcheckbox.Create(self);
     check[i].left:=40;
     check[i].top:=35+b;
     check[i].width:=450;
     check[i].height:=40;
     check[i].font.size:= 12;
     check[i].parent:=groupbox1;
     b:=b+60;




end;


check[1].caption:=antworten[1];
check[2].caption:=antworten[2];
check[3].caption:=antworten[3];
check[4].caption:=antworten[4];

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

button2.visible:=false;
for i:=1 to 4 do

begin
check[i].color:=clwhite;
check[i].checked:=false;
end;

frage:=frage+1;
panel1.caption:=inttostr(frage)+' / 4';

case
     frage of 1: groupbox1.caption:=fragen[2];
              2: groupbox1.caption:=fragen[3];
              3: groupbox1.caption:=fragen[4];
           
     end;


case frage of 1: begin
                  check[1].caption:=antworten[5];
                  check[2].caption:=antworten[6];
                  check[3].caption:=antworten[7];
                  check[4].caption:=antworten[8];
                  end;

              2: begin
                  check[1].caption:=antworten[9];
                  check[2].caption:=antworten[10];
                  check[3].caption:=antworten[11];
                  check[4].caption:=antworten[12];
                   end;

              3: begin
                  check[1].caption:=antworten[13];
                 check[2].caption:=antworten[14];
                 check[3].caption:=antworten[15];
                 check[4].caption:=antworten[16];
                  end;

end;

 end;


procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin

if groupbox1.caption=fragen[1] then
begin

for i:=1 to 4 do
if check[i].caption=r_antworten[1] then check[i].color:=clgreen;

end;


if groupbox1.caption=fragen[2] then

begin
for i:=1 to 4 do
if (check[i].caption=r_antworten[2]) or (check[i].caption=r_antworten[3]) or (check[i].caption=r_antworten[4])then check[i].color:=clgreen;

   end;


if groupbox1.caption=fragen[3] then
begin
for i:=1 to 4 do
if check[i].caption=r_antworten[5] then check[i].color:=clgreen;

end;


if groupbox1.caption=fragen[4] then
begin
for i:=1 to 4 do
if (check[i].caption=r_antworten[6]) or (check[i].caption=r_antworten[7]) then check[i].color:=clgreen;

end;

end;

procedure TForm1.GroupBox1Click(Sender: TObject);
begin
button2.visible:=true;
end;
Miniaturansicht angehängter Grafiken
unbenannt.jpg  
  Mit Zitat antworten Zitat