Delphi-PRAXiS
Seite 2 von 4     12 34      

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

chuck.9 20. Jan 2009 19:09

Re: Quiz in Delphi
 
Delphi-Quellcode:
unit Fragen;

interface

function quizfragen(n,m: Integer): string;

implementation

function quizfragen(n,m: Integer): string;
var feld: array [1..60,1..6] of String;

begin

feld[1,1]:='Wie heißt der höchste Berg Deutschlands?';
das der anfang!

[edit=mkinzler]Delphi-Tag statt bold Mfg, mkinzler[/edit]

DeddyH 20. Jan 2009 19:12

Re: Quiz in Delphi
 
Das ist ein bisschen unglücklich, da Du bei jedem Aufruf der Funktion erstmal Dein Array neu befüllst, aber ist erstmal egal. Weist Du denn auch irgendwo Result zu?

chuck.9 20. Jan 2009 19:17

Re: Quiz in Delphi
 
na ich wisses halt nich..., das ist das problem, das hab ich ja auch schon gesehn, aber wir könnte man sowas mithilfe von modulen/units lösen?

DeddyH 20. Jan 2009 19:19

Re: Quiz in Delphi
 
Da muss doch am Ende der Funktion (nachdem Dein Array komplett befüllt ist) ein
Delphi-Quellcode:
Result := feld[n,m];
rein. Evtl. vorher n und m auf die maximalen Grenzen prüfen.

chuck.9 20. Jan 2009 19:27

Re: Quiz in Delphi
 
ich wisses nich worans liegt, aber es tut sich immer noch nix

Delphi-Quellcode:
var
  feld: array [1..60,1..6] of String;
  n:integer;


procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage('Verloren, versuchs noch einmal.');
close;
end;

procedure TForm1.Button1Click(Sender: TObject);


begin
 randomize;

            panel3.Caption:='0 €';
            panel2.caption:='Nr. 1';
            n:=random(3)+1;
            panel1.caption:=quizfragen(n,1);
            radiobutton1.caption:=quizant(feld[2]);
ist bis dahin auch alles richig deklariert...aber denke eig schon, denn 10 pkt in info, heißt bin nich dumm...xDxD!

[edit=mkinzler]Tag aufgefrischt Mfg, mkinzler[/edit]

DeddyH 20. Jan 2009 19:40

Re: Quiz in Delphi
 
Erstens ist feld jetzt nochmal unitglobal deklariert und zweitens sehe ich nirgendwo den Aufruf der Funktion quizfragen :gruebel:

chuck.9 20. Jan 2009 19:59

Re: Quiz in Delphi
 
so dieses Porblem wäre jez behoben, musste nur an den uses was ändern...xDxD!

aber das nächste problem, ich will in dem quiz mit radiobuttons arbeiten, nun soll überprüft werden ob der angeklickte radiobutton mit der richtigen antwort übereinstimmt...!

Delphi-Quellcode:
if quizfragen(n,1)=quizrichtig(n,6) then
könnte man es so vereinbaren?

DeddyH 20. Jan 2009 20:01

Re: Quiz in Delphi
 
Wie ich bereits angedeutet hatte erscheint mir die Verwendung einer Klasse irgendwie sinnvoller, da könnte man das schön setzen und auswerten.

angos 20. Jan 2009 21:59

Re: Quiz in Delphi
 
Zitat:

Zitat von chuck.9
so dieses Porblem wäre jez behoben, musste nur an den uses was ändern...xDxD!

aber das nächste problem, ich will in dem quiz mit radiobuttons arbeiten, nun soll überprüft werden ob der angeklickte radiobutton mit der richtigen antwort übereinstimmt...!

Delphi-Quellcode:
if quizfragen(n,1)=quizrichtig(n,6) then
könnte man es so vereinbaren?

müsstest du in dem Fall nicht einfach direkt deinen array abfragen? ist alles ein bisschen undurchsichtig, da immer nur bruchstückcode gepostet wurde, aber vielleicht hilft der schnipsel weiter:

Delphi-Quellcode:
  [...]
  ndx := Radiogroup.ItemIndex+1; // + 1 da dein array erst bei 1 startet, das erste item einer Radiogroup aber den index 0 hat
  if feld[n, ndx] = feld[n, 6] then
  [...]
schau dir trotzdem das ganze nochmal mit ner Klasse an, wie DeddyH schon angedeutet hat.

Gruß
Ansgar

chuck.9 20. Jan 2009 22:10

Re: Quiz in Delphi
 

Das die Unit der richtigen antworten(der anfang)!

Delphi-Quellcode:
function quizrichtig(n,m: Integer): string;

var feld: array [1..60,1..6] of string;

begin

feld[1,6]:='Zugspitze';
feld[2,6]:='8';
feld[3,6]:='Damenschuhe';
Das die Unit der Anworten überhaupt(der anfang)!
Delphi-Quellcode:
function quizant(n,m: Integer): string;

var feld: array [1..60,1..6] of string;
begin
feld[1,2]:='Watzmann';
feld[1,3]:='Zugspitze';
Das die Unit der Fragen(der anfang)!
Delphi-Quellcode:
function quizfragen(n,m: Integer): string;
var feld: array [1..60,1..6] of String;

begin

feld[1,1]:='Wie heißt der höchste Berg Deutschlands?';
feld[2,1]:='Wie viele Beine hat eine Spinne?';

Das ist meine Button Click Prozedur:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);


begin
 randomize;

            panel3.Caption:='0 €';
            panel2.caption:='Nr. 1';
            n:=random(3)+1;
            panel1.caption:=quizfragen(n,1);
            radiobutton1.caption:=quizant(n,2);
            radiobutton2.Caption:=quizant(n,3);
            radiobutton3.caption:=quizant(n,4);
            radiobutton4.Caption:=quizant(n,5);

[color=#ff0000]if quizfragen(n,1)=quizrichtig(n,6) then[/color]
das rot markierte funktioniert nicht, der rest schon!

Nun will ich Testen ob der markierte Radiobutton auch die richtige Antwort ist! Und ich will es mit Modulen/Units machen!
Wie lautet der Quelltext zur überprüfung ob Radiobutton auch richtige antwort ist?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.
Seite 2 von 4     12 34      

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