![]() |
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:
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.
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; Sollten da noch Fehler drin sein: Ich hab's hier direkt reingetippt. |
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:
also ich habe jetzt zwei versuche für jede Frage!
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; 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:
Ich weiss nur nicht, wie ich das jetzt alles zusammenpacken muss!
IF Antwort = Frage[nummer].Antwort THEN
Danke detlef |
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 |
Moin Detlef,
wie das Array gefüllt wird steht doch in meinem letzen Posting? |
ja, aber wie macht man die ganzen label-Zuweisungen, in die ich meine fragen schreiben kann?
Danke detlef |
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 ;-) ) |
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. |
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 |
Re: Quiz erstellen
Moin Roxi,
für die Anzahl der Fragen sind folgende Zeilen wichtig:
Delphi-Quellcode:
Als Vereinfachung (Verbesserung) könnte man auch einfach eine Konstante mit der Anzahl belegen, und diese an diesen drei Stellen einbauen.
aqQuiz : array [1..15] of TcsQuiz; // Im Interface-Abschnitt
if FiCountQuestion = 15 then // In NextQuestion for i := 1 to 15 do // In FormCreate 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. |
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