Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Quiz erstellen (https://www.delphipraxis.net/1758-quiz-erstellen.html)

Christian Seehase 23. Dez 2002 13:07

Moin Detlef,

Du wirst in jedem Falle eine Schleife über die 15 Positionen benötigen, ausser Du möchtest das Einlesen für alle 15 von in einzelnen Zeilen Codieren. Das ginge natürlich auch, würde aber wohl kaum jemand machen.

Delphi-Quellcode:
var
 aqQuiz  : array [1..15] of TcsQuiz;
 i       : integer;
 j       : integer;
 sSection : string;

begin
  for i := 1 to 15 do
  begin
    sSection := 'Frage'+IntToStr(i);
    aqQuiz[i].sQuestion := iniQuiz.ReadString(sSection,'Frage','');
    for j := 1 to 4 do
    begin
      aqQuiz[i].sAnswer[j] := iniQuiz.ReadString(sSection,'Antwort'+IntToStr(j),'');
    end;
    aqQuiz[i].iCorrect := iniQuiz.ReadInteger(sSection,'Korrekt',0);
  end;
end;
Das ist jetzt nur ein Codefragment, wie man dann die Daten einlesen kann. Da für jede Position die gleiche Section benötigt wird, habe ich die mal in einer Variable zusammengefasst.

Sollten da noch Fehler drin sein:
Ich hab's hier direkt reingetippt.

01Detlef 8. Jan 2003 17:24

hallo, ich war im urlaub, deshalb jetzt noch ein frohes neues jahr!!

ich habe jetzt mal ein wenig herumgeproggt(mit ein wenig hilfe) und:
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Versuche:=0;
  // hier muss jetzt noch das array hinein, welches aus einer datei eingelesen werden soll
  nummer:=0;
  Label_Frage.Caption:=Frage[nummer].Frage;
end;

procedure TForm1.Button1Click(Sender: TObject);
var antwort: STRING;
begin
  Antwort:=edit1.text[1];
  IF Antwort = Frage[nummer].Antwort THEN
  begin
    Versuche := 0;
     inc(nummer);
     Label_Frage.Caption:=Frage[nummer].Frage;
  end ELSE
  begin
    IF Versuche <1 THEN
    begin
      showmessage('leider Falsch....');
      Versuche := Versuche +1 ; //bzw. INC(Versuche)
    end ELSE

      IF Versuche >= 1 THEN
      BEGIN
      showmessage('Game Over.....');
      form1.close;
    end;
  end;
end;
also ich habe jetzt zwei versuche für jede Frage!

Mein Problem besteht darin, das array zu füllen, die Schleife ist ja der button, der die nummer von mal zu mal um eins erhöht! Zu der erhöhung müssen sich die zuweisungen ändern!Also so:
Nummer=1 Frage= hauptstadt von Deutschland?
1)Bonn
2)Berlin
3)Hamburg
4)..
und außerdem muss noch in einem array die richtigen zahlen oder buchstaben geseichert seien, damit die nächste frage erscheint!
Code:
IF Antwort = Frage[nummer].Antwort THEN
Ich weiss nur nicht, wie ich das jetzt alles zusammenpacken muss!

Danke detlef

01Detlef 10. Jan 2003 15:14

hallo,
könnt ihr mir nicht helfen, es ist wirklich wichtig!
Ich weiss wirklich nicht, wie ich das array fülle und die labelzuweisungen mache??

Bitte detlef

Christian Seehase 10. Jan 2003 15:43

Moin Detlef,

wie das Array gefüllt wird steht doch in meinem letzen Posting?

01Detlef 10. Jan 2003 17:45

ja, aber wie macht man die ganzen label-Zuweisungen, in die ich meine fragen schreiben kann?

Danke detlef

Christian Seehase 10. Jan 2003 18:02

Liste der Anhänge anzeigen (Anzahl: 1)
Moin Detlef,

ich hab' Dir hier mal ein kleines Muster angehängt wie man's machen könnte. (funktioniert sogar ;-) )

Christian Seehase 18. Mär 2009 20:06

Re: Quiz erstellen
 
Hallo Zusammen,

da ich nach eine Dokumentation zu dem Programm gefragt wurde, möchte ich diese hiermit nachholen:
Die Daten werden in einer INI-Datei (Quiz.ini) im Programmverzeichnis gespeichert.

Die Datei hat folgenden Aufbau:

[FrageX]
Frage=<Text Frage>
Antwort1=<1. Antwortmöglichkeit>
Antwort2=<2. Antwortmöglichkeit>
Antwort3=<3. Antwortmöglichkeit>
Antwort4=<4. Antwortmöglichkeit>
Korrekt=<Angabe, welche Antwort die richtige ist (1-4)>

wobei X für einen Wert von 1-15 steht, da das Programm für 15 Fragen ausgelegt ist.

Roxana 23. Mär 2009 18:39

Re: Quiz erstellen
 
ich versuche gerade mit dieser vorlage ein eigenes quiz zu erstellen...aus spaß ;)
jedoch finde ich die stelle im quelltext nicht, wo ich meine fragen und antworten einfügen kann.ich hoff ich bekomme hilfe ;)

lieben Gruß Roxi

Christian Seehase 23. Mär 2009 20:55

Re: Quiz erstellen
 
Moin Roxi,

für die Anzahl der Fragen sind folgende Zeilen wichtig:

Delphi-Quellcode:
  aqQuiz : array [1..15] of TcsQuiz; // Im Interface-Abschnitt

  if FiCountQuestion = 15 then // In NextQuestion

  for i := 1 to 15 do // In FormCreate
Als Vereinfachung (Verbesserung) könnte man auch einfach eine Konstante mit der Anzahl belegen, und diese an diesen drei Stellen einbauen.

Wie in meinem letzten Post schon geschrieben kommen die Fragen und Antworten in eine Ini-Datei.

Mal ein Konkretes Beispiel für einen Eintrag:

Code:
[Frage1]
Frage=Wieviel ist 3 mal 3
Antwort1=9
Antwort2=12
Antwort3=15
Antwort4=18
Korrekt=1


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz