![]() |
Vereinfachung durch Var.
Hallo,
wie einige schon wissen programmiere ich gerade mein erstes Projekt: Ein Quiz. Allerdings hab ich nun nicht immer lust alle fenster neu zu schreiben, in denen die Fragen kommen. Beispiel:
Delphi-Quellcode:
Das ist ja das Fenster in dem die Fragen kommen und wo man seine Antwort eingeben muss. frage1 ist in diesem Fall natürlich eine Variable. Nun hab ich aber nicht immer Lust, dass ganze zu schreiben und immer nur mit 'frage2', 'frage3' etc. zu korrigieren. Ich hatte schon versucht eine Variable zu schreiben und diese dann einfach nur immer plus die Variable 'frage' zu addieren, aber das hat nicht geklappt. Weiß einer 'ne Lösung?
eingabe:= InputBox('Super-Quiz',frage1, 'Antwort eingeben') ;
if (eingabe = ant1) THEN Showmessage('Richtig') else Showmessage('Falsch'); |
Re: Vereinfachung durch Var.
Hai Frankie,
mache das ganze doch mit einem Array of String.
Delphi-Quellcode:
Das ist so natürlich nur ein Beispiel. Besser wäre natürlich ein Dynamisches-Array oder gleich eine kleine Datenbank dahinter!
procedure TForm1.Button1Click(Sender: TObject);
var fragen : Array [1..4] of String; antworten : Array [1..4] of String; eingabe : String; ndx : Integer; begin // Meine Demo-Fragen fragen[1] := 'blubb'; antworten[1] := 'keine Ahnung'; fragen[2] := 'Sardiene'; antworten[2] := 'mir egal'; fragen[3] := 'Karpfen'; antworten[3] := 'wer will das wissen'; fragen[4] := 'Hering'; antworten[4] := 'das ist geheim'; // Jetzt geht es los for ndx := 1 to High (fragen) do begin eingabe:= InputBox('Super-Quiz',fragen[ndx], 'Antwort eingeben') ; if (eingabe = antworten[ndx]) then begin Showmessage('Richtig') end else begin Showmessage('Falsch'); end; end; end; |
Re: Vereinfachung durch Var.
Hi,
ich sehe eine Möglichkeit event. mit array zu arbeiten. Andere Möglichkeit wäre vielleicht eine Schleife mit einen Faktor der sich pro Schleifendurchlauf um eins erhöht Bsp.:
Code:
cu
for i:=1 to Durchlaufanzahl do
.... veränderliche_Variable:=veränderliche_Variable + 1; .... Edit: Sharky war schneller :o |
Re: Vereinfachung durch Var.
und wenn du mit der funktion "neue frage hinzufügen" arbeiten willst
dann amchst du das mit einem dynamischen array var mydynar : array of string;
Delphi-Quellcode:
und auch wieder mit high(letzer wert im array) arbeiten!
setlength(mydynar, Length(mydynar)+1);
|
Re: Vereinfachung durch Var.
Zitat:
|
Re: Vereinfachung durch Var.
Der Code an sich geht schon, nur dass er alle Fragen hintereinander stellt. :mrgreen:
|
Re: Vereinfachung durch Var.
aha. Eine Fehlermeldung.
|
Re: Vereinfachung durch Var.
Ah jetzt funktionierts. Hatte wohl was falsch gemacht?!
Auf jeden Fall danke schön! :mrgreen: Muss da jetzt nur noch durchsteigen. Edit: Also dieses Array of String bestimmt ja die Anordnung. Kann ich diese also nur durch [1],[2] etc. bestimmen? Was ich noch nicht ganz verstanden habe, ist wofür der ndx ist?! |
Re: Vereinfachung durch Var.
Zitat:
|
Re: Vereinfachung durch Var.
Wenn du ein array hast, hast du ja alle Fragen hintereinander. Mit dem Index (hier 'ndx') kannst du dann bestimmen welche Frage du ausgeben willst. Wenn du dann sowas schreibst
Delphi-Quellcode:
, hast du 'Hering' im Label stehen. Wie du das füllen kannst, steht ja schon im Text.
ndx:=1;
label1.caption:=fragen[ndx]; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 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