![]() |
Quiz: Frage zurückstellen
Ich muss für einen Beleg ein umfangreiches Quiz programmieren, dessen Fragen durch einen Frageneditor eingelesen werden. Das klappt auch mit Hilfe von doppelt verketteten Listen.
Nun muss ich auch die Möglichkeit einräumen, eine Frage zurückstellen zu können. Alle Versuche brachten nichts. Muss ich eine Warteschlange (queue) programmieren. Muss die Warteschlange dann seperat angehängt werden. Oder klappt es mit "Einfügen nach" auch, wie klappt es aber, dass das Programm es erkennt, dass alles ans Ende angehängt werden muss? Tschüss! und danke im Voraus! |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Programmieren allgemein" verschoben.
Nichts für die Code-Lib |
Re: Quiz: Frage zurückstellen
Erstelle doch eine Liste (Array, TList, TObjectList... was auch immer), in die du immer die zurückgestellten Fragen reinschreibst. Wie du die Fragen speicherst, weiß ich nicht, aber ich denke, du speicherst sie in einem record oder einem Objekt... Dann einfach das Objekt zu einer TObjectList hinzufügen. Und wenn du die zurückgestellten Fragen abfragst, gehst du einfach die Liste durch.
Eventuell könntest du das auch einfach ganz hinten an deine normale Liste von Fragen anhängen. Hängt aber alles davon ab, wie du den Rest programmiert hast, bzw. wie das Quiz aufgebaut ist. Nähere Informationen wären praktisch ;) |
Re: Quiz: Frage zurückstellen
Ich will alles auch einfach an meine normale liste anhängen. Da aus dem umfangreichen Quiz per Zufall 15 Fragen ausgewählt werden sollen. Also wird es bei diesen 15 Fragen bleiben, nur dass die zurückgestellte am Schluss wieder auftauchen soll. Ja, alles ist als record aufgebaut. :gruebel:
|
Re: Quiz: Frage zurückstellen
Delphi-Quellcode:
fertig... was war da jetzt schwierig(immer vorausgesetzt, du hast deine fragen in einer StringList)?
procedure zurückstellen(SL:TStrings;index:integer);
begin if not assigned(sl) then raise EException.create('Stringlist nicht besetzt!'); sl.add(''); sl.move(index,sl.count); end; |
Re: Quiz: Frage zurückstellen
Danke, es kommt auf einen Versuch an. Klar, nicht schwer, aber für jemanden, der ganz am Anfang steht und alles nebenbei im Schnelldurchlauf machen muss! Klappt es nicht, melde ich mich wieder!
Hier meine Typen.pas
Delphi-Quellcode:
type T_Zeiger = ^T_Liste;
T_quiz = record Frage : string[250]; Antwort_A : string[100]; Antwort_B : string[100]; Antwort_C : string[100]; Antwort_D : string[100]; Antwort : string[100]; end; //von record T_Quiz T_Liste = record inhalt : T_quiz; prev : T_Zeiger; next : T_Zeiger; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 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