Autor |
Beitrag |
supermann
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 09.01.07 09:09
Hallo!
Ich wollte aus Spass mal anfangen zu programmieren,
da ich aber bis jetzt noch gar keine Erfahrung mit Delphi habe,
wollte ich fragen, ob ihr mir da ein bissl helfen könnt...
Mein Ziel ist es ein Quiz zu erstellen (multiple choice o.ä.),
bei dem man mehrere Auswahlmöglichkeiten hat und es im Hintergrund
die richtigen Antworten zählt.
Wäre nett, wenn ihr mir helfen könntet..
Danke schon mal im vorraus!!
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Di 09.01.07 10:49
Hallo!
Gute Entscheidung, dann mit Delphi anzufangen  .
Hier im Forum wirst du mit etwas Suchen bestimmt auf einige Ansätze stoßen. Wenn du gar keine Ahnung hast, solltest du dich vielleicht erstmal mit den Delphi-Grundlagen beschäftigen. Ohne die geht's leider nicht. Ein guter Anlaufpunkt ist da Christians Delphi Crashkurs.
Solltest du dann konkrete Fragen haben, kannst du sie hier gerne stellen.
Gruß
|
|
wurzel
      
Beiträge: 75
Win 2000, Win XP
BDS 2006 (Delphi, Delphi .NET, C++)
|
Verfasst: Di 09.01.07 11:30
En Raetsdel hab ich auch schon gemacht, da kannste net viel falsch machen. Ich uppe mal meins. Man muss immer einen Level höher kommen, bei Lvl 1 ist das Zeichen "1", dann sit "2" die Antwort, dann kommt "III" und "IV" ist die antwort etc etc. Also immer das nächst höhere in der Schreibweise der Frage.
Der Link zu den Fragen ist www.hackme.wi-ing.net/index.php. Ich habe nur diese Fragen in ein programm zusammengefasst.
Einloggen, um Attachments anzusehen!
_________________ "Könntest du deinen Egotrip mal kurz unterbrechen? Es ist was wichtiges passiert." - "Wenn es irgendwas wichtigeres als mein Ego gibt, verlange ich, dass man es auf der Stelle verhaftet und erschießt."
|
|
supermann 
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 09.01.07 21:10
Eigentlich wollt ich eher so etwas mit multiple choice machen..
Ich hab aber leider keine Ahnung, wie ich das anstellen soll
(ihr müsst ja kein komplettes programm reinschreiben, sondern
nur einen Ausschnitt, damit ich weiß, wie ich das mit mehreren Antwortmöglichkeiten
anstellen;))
Danke!
|
|
Shorty
      
Beiträge: 107
Win XP, Ubuntu 8.04
Delphi 7 Prof., Delphi 2005 Pers.
|
Verfasst: Di 09.01.07 21:19
Das macht man mit einer Radiogroup, bei der du dann mit einer if-Abfrage überprüfst, ob die gegebene Antwort richtig ist, wenn du das noch nicht hinbekommst, solltest du wirklich erstmal weiter Grundlagen paucken 
|
|
supermann 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mi 10.01.07 01:05
und wie mach ich das, dass der die richtigen Antworten im
Hintergrund zählt?
Muss ich dann für jede Frage ne neue Form erstellen?
|
|
Saubäär
      
Beiträge: 376
|
Verfasst: Mi 10.01.07 01:18
Hi superman,
für jede richtige Antwort inkrmentierst (erhöhst) du eine Variable z.b.
Delphi-Quelltext 1: 2: 3: 4: 5:
| var RichtigeAntworten: Integer; begin IF Antwort = richtig THEN INC(RichtigeAntworten); end; |
|
|
wurzel
      
Beiträge: 75
Win 2000, Win XP
BDS 2006 (Delphi, Delphi .NET, C++)
|
Verfasst: Mi 10.01.07 13:15
_________________ "Könntest du deinen Egotrip mal kurz unterbrechen? Es ist was wichtiges passiert." - "Wenn es irgendwas wichtigeres als mein Ego gibt, verlange ich, dass man es auf der Stelle verhaftet und erschießt."
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 10.01.07 13:41
Hier etwas ähnliches... www.delphi-forum.de/...c.php?t=67142#403690
Das Beispiel macht es auch mit vielen Fragen nicht mit sehr vielen Zeilen Quelltext, weil die Fragen und Antworten als Konstanten angegeben werden.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| type TQuestion = record Question: string; Answers: string; end;
const Questions: array[0..1] of TQuestion = ( (Question: 'Frage 1'; Answers: 'Antwort 1.1'#13#10'Antwort 1.2'#13#10'Antwort 1.3'), (Question: 'Frage 2'; Answers: 'Antwort 2.1'#13#10'Antwort 2.2'#13#10'Antwort 2.3')); |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TForm44.FormCreate(Sender: TObject); begin UpdateDisplay; end;
procedure TForm44.UpdateDisplay; begin rgQuestion.Caption := Questions[rgQuestion.Tag].Question; rgQuestion.Items.Text := Questions[rgQuestion.Tag].Answers; end;
procedure TForm44.btnBackClick(Sender: TObject); begin if rgQuestion.Tag > 0 then begin rgQuestion.Tag := rgQuestion.Tag - 1; UpdateDisplay; end; end;
procedure TForm44.btnNextClick(Sender: TObject); begin if rgQuestion.Tag < High(Questions) then begin rgQuestion.Tag := rgQuestion.Tag + 1; UpdateDisplay; end; end; |
Eine variable Anzahl von Antworten geht natürlich auch.
|
|
supermann 
Hält's aus hier
Beiträge: 5
|
Verfasst: Do 11.01.07 21:09
Danke erst einmal für die Antworten, aber ich hab jetzt ein Problem:
Ich hab schon bevor ihr geantwortet habt, angefangen zu schreiben
und hab jetzt eine form, wo 3 radiobuttons drauf sind und wenn man
die jeweils Richtige angeglickt hat, erscheint in einer
neuen Form "Richtig", ansonsten falsch.
Dann kann man auf einen "weiter" button klicken und es öffnet sich eine neue
Form, wo die nä Frage drinsteht.
Da ich bei ein haufen Fragen, dann auch ein Haufen Formen machen müsste, würde das
ewig dauern..
Da ich aber leider durch den ersten Quelltext nich so richtig durchsehe (ka,
was mit question.Lines.Add gemeint ist, zeigt mir nen fehler an)
und bei dem zweiten müsste ich ja das ganze mit den Radio Buttons ändern..
Wie kann ich also am besten mein Prog ändern, ohne dass ich ein haufen
Formen nehme und nich mein ganzes geschriebenes löschen muss?
Danke!!
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 11.01.07 21:23
supermann hat folgendes geschrieben: | Wie kann ich also am besten mein Prog ändern, ohne dass ich ein haufen
Formen nehme und nich mein ganzes geschriebenes löschen muss? |
Naja, dazu müsstest du dein aktuelles Programm mal hier als Anhang posten, sonst können wir solch eine Frage nicht beantworten...
Am einfachsten wäre allerdings mein Vorschlag. Das sind ja nur die paar Zeilen, die ich in meinem Beitrag auch gepostet habe! Da fehlt ja eigentlich nur noch die Auswertung, ob eine Frage richtig oder falsch beantwortet wurde.
Dazu müsstest du ja nur den record um die korrekte Antwort erweitern:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| type TQuestion = record Question: string; Answers: string; CorrectAnswer: byte; end; |
CorrectAnswer müsstest du dann natürlich auch bei den Konstanten korrekt initialisieren.
Und damit der User nicht dauernd "Ok" klicken muss, könntest du die Auswertung der jeweils letzten Frage ja ganz oben im Formular über der nächsten anzeigen... 
|
|
wurzel
      
Beiträge: 75
Win 2000, Win XP
BDS 2006 (Delphi, Delphi .NET, C++)
|
Verfasst: Do 11.01.07 21:42
supermann hat folgendes geschrieben: |
Da ich aber leider durch den ersten Quelltext nich so richtig durchsehe (ka,
was mit question.Lines.Add gemeint ist, zeigt mir nen fehler an)
|
question.Lines.Add --> Das Memo-Feld heißt question. In diesem Schritt wird einfach nur eine neue Zeile im Memofeld geschrieben
_________________ "Könntest du deinen Egotrip mal kurz unterbrechen? Es ist was wichtiges passiert." - "Wenn es irgendwas wichtigeres als mein Ego gibt, verlange ich, dass man es auf der Stelle verhaftet und erschießt."
|
|
|