Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank- Quiz programmieren (https://www.delphipraxis.net/203649-datenbank-quiz-programmieren.html)

Reedx 8. Mär 2020 15:43

Datenbank: Access • Version: office 16 • Zugriff über: OLEB Provider Microsoft Jet

Datenbank- Quiz programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöchen, ich bins wieder, falls jemand meinen letzten Beitrag schon kennt. :-D
Ich muss am 17.3. mein Projekt in der Schule abgeben und fühle mich langsam gestresst.. hänge an einen Knackpunkt.
Wenn ich den habe, dann bin ich fast fertig. Hoffe auf eure Hilfe..:oops:


Bevor Fragen kommen, JA i hab ich schon oben deklariert als integer..
Mein Ziel ist es, dass die Fragen aus der Datenbank ausgelesen werden

Die Frage erscheint im Caption Feld von der Radio Group und die Antwortmöglichkeiten in den RadioButtons..
Nun soll beim Click auf 'nächste Frage' die nächste kommen, aber das passiert nicht..
es kommt keine Fehler meldung und das Programm läuft auch.. nur kommt halt keine neue Frage/bzw Antworten
Das einzige derzeit ist, dass die erste Frage zwar erscheint, aber die Antwortmöglichkeiten von einer anderen Frage stammen..

Programmieren liegt mir einfach nicht..

Ein Bild zur Vorstellung hänge ich wieder mit an!


hier der Quelltext:

Delphi-Quellcode:
procedure TFormle.ButtonnextClick(Sender: TObject);
var query:ANSIstring; i:integer;
begin

 if lb.ItemIndex >=0 then
 begin
    rg.Visible:=true;
    Datamodule1.ADOQuery6.SQL.Clear;
    Datamodule1.ADOQuery7.SQL.Clear;
    Datamodule1.ADOQuery6.SQL.Text:='SELECT Frage FROM Fragen WHERE Fach = ' +#39+lb.Items.Strings[lb.ItemIndex]+#39 +
             ' AND Schwierigkeit="1";';
    Datamodule1.ADOQuery6.Open;
    Datamodule1.ADOQuery7.SQL.Text:= 'SELECT L1, L2, L3 FROM Fragen WHERE Fach = ' +#39+lb.Items.Strings[lb.ItemIndex]+#39 +
                                    ' AND Schwierigkeit="1";';
    Datamodule1.ADOQuery7.Open;
for i:=0 to 10 do
while not (Datamodule1.ADOQuery6.Eof) and (Datamodule1.ADOQuery7.Eof) do


Datamodule1.ADOQuery6.Next;
Datamodule1.ADOQuery7.Next;

//Frage in "Titel"
rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
//Antworten in Radiobuttons
rg.Items.Clear;
rg.Items.Add(Datamodule1.ADOQuery7.Fields[0].AsString);
rg.Items.Add(Datamodule1.ADOQuery7.Fields[1].AsString);
rg.Items.Add(Datamodule1.ADOQuery7.Fields[2].AsString);
i:=+1;
    end else
    begin
    application.MessageBox('Auswahlfehler!','Fehler');
    end;

end;

DieDolly 8. Mär 2020 15:49

AW: Datenbank- Quiz programmieren
 
Du hast da im Prinzip 0 Fehlerbehandlung drin. Damit fängt es schon an. Dann würde das korrekte Einrücken des Codes auch alles für dich verständlicher machen denke ich.
Wofür 2 Queries?

Ich gebe dir mal einen Tipp. Benutz mal die "Automatische Einrückung" (STRG+D). Vielleicht findest du einen der Fehler dann schon selber.

Reedx 8. Mär 2020 15:57

AW: Datenbank- Quiz programmieren
 
Zitat:

Zitat von DieDolly (Beitrag 1459151)
Du hast da im Prinzip 0 Fehlerbehandlung drin. Damit fängt es schon an. Dann würde das korrekte Einrücken des Codes auch alles für dich verständlicher machen denke ich.
Wofür 2 Queries?

Ich gebe dir mal einen Tipp. Benutz mal die "Automatische Einrückung" (STRG+D). Vielleicht findest du einen der Fehler dann schon selber.


Ich finde meinen quelltext selber persönlich nicht unübersichtlich.. das extreme einrücken ist für mich tatsächlich viel unüberischtlicher..

2 Queries hab ich deswegen, weil ich persönlich denke, da es sich einmal nur um die Frage handelt und dann um die Antwortmöglichkeiten.. deswegen 2 einzelne.. brauche ja 2 verschiedene Ausgaben im SELECT Befehl.. ist das falsch?

Automatische Einrückung funktioniert nicht, hab es probiert.
Und nein, meine Fehler finde ich nicht selber, da ich schon seit einigen Tagen versuche das Problem zu lösen und immer noch zu keiner Antwort gekommen bin.. ein Klassenkamerad konnte mir auch nicht helfen.. deswegen frage ich hier

DieDolly 8. Mär 2020 16:20

AW: Datenbank- Quiz programmieren
 
Zitat:

das extreme einrücken ist für mich tatsächlich viel unüberischtlicher..
Das ist kein "extremes Einrücken" sondern "korrektes Einrücken".
Rück mal alles händisch korrekt ein dann findest du einen der Fehler.

Zitat:

ein Klassenkamerad konnte mir auch nicht helfen
Meiner Meinung nach eben wegen der nicht vorhandenen Einrückung.

Ich möchte dich nicht ärgern. Ich möchte nur, dass du genau hinguckst ;)

DeddyH 8. Mär 2020 16:22

AW: Datenbank- Quiz programmieren
 
Beispielhaft mal 3 Zeilen, aber korrekt eingerückt:
Delphi-Quellcode:
while not (Datamodule1.ADOQuery6.Eof) and (Datamodule1.ADOQuery7.Eof) do
  Datamodule1.ADOQuery6.Next;
Datamodule1.ADOQuery7.Next;
Fällt Dir da etwas auf?

[Bemerkung] Das sind wahrscheinlich gleich 2 Fehler in 3 Zeilen [Bemerkung]

Reedx 8. Mär 2020 16:38

AW: Datenbank- Quiz programmieren
 
Zitat:

Zitat von DeddyH (Beitrag 1459157)
Beispielhaft mal 3 Zeilen, aber korrekt eingerückt:
Delphi-Quellcode:
while not (Datamodule1.ADOQuery6.Eof) and (Datamodule1.ADOQuery7.Eof) do
  Datamodule1.ADOQuery6.Next;
 Datamodule1.ADOQuery7.Next;
Fällt Dir da etwas auf?

[Bemerkung] Das sind wahrscheinlich gleich 2 Fehler in 3 Zeilen [Bemerkung]

ich finde tatsächlich keinen fehler.. hab woanders auch mit dem .eof und .next gearbeitet und da hat es auch funktioniert ...

DieDolly 8. Mär 2020 16:40

AW: Datenbank- Quiz programmieren
 
Zitat:

ich finde tatsächlich keinen fehler
Zitat:

hab woanders auch mit dem .eof und .next gearbeitet und da hat es auch funktioniert ...
Wer sagt, dass der Fehler (nur) da ist?
Begin: Keyword that starts a statement block

Wenn deine Lehrerin oder dein Lehrer nicht über Begin, End und Blöcke gesprochen hat, am besten direkt ersetzen.

DeddyH 8. Mär 2020 16:42

AW: Datenbank- Quiz programmieren
 
Zitat:

Delphi-Quellcode:
while not (Datamodule1.ADOQuery6.Eof) and (Datamodule1.ADOQuery7.Eof) do

Das entspricht logisch
Delphi-Quellcode:
while (not (Datamodule1.ADOQuery6.Eof)) and (Datamodule1.ADOQuery7.Eof) do
Sicher, dass das so stimmt?

DieDolly 8. Mär 2020 16:49

AW: Datenbank- Quiz programmieren
 
Denk bitte nicht, dass wir dich hier ärgern wollen. Aber es ist auch ein gewisser Grad an Mitarbeit erwünscht.

[OT]Ich gehe einfach mal davon aus, dass der Lehrer das Basiswissen nicht vermittelt oder nicht korrekt vermittelt.
Genau sowas hier ist dann der Grund, warum viele Delphi anschließend hassen[/OT]

Reedx 8. Mär 2020 16:56

AW: Datenbank- Quiz programmieren
 
Zitat:

Zitat von DieDolly (Beitrag 1459161)
Denk bitte nicht, dass wir dich hier ärgern wollen. Aber es ist auch ein gewisser Grad an Mitarbeit erwünscht.

[OT]Ich gehe einfach mal davon aus, dass der Lehrer das Basiswissen nicht vermittelt oder nicht korrekt vermittelt.
Genau sowas hier ist dann der Grund, warum viele Delphi anschließend hassen[/OT]

ja es ist tatsächlich so.. weiß bei vielem nicht wirklich weiter.. nur gut das am Dienstag meine Vorprüfung ist.. die lassen uns ziemlich hängen..

und ja, ich arbeite auch gerne mit und bemühe mich ja, aber wenn ICH selber nichts finde und keine ahnung habe... weiß halt dann auch nicht weiter..

Reedx 8. Mär 2020 16:57

AW: Datenbank- Quiz programmieren
 
Zitat:

Zitat von DeddyH (Beitrag 1459160)
Zitat:

Delphi-Quellcode:
while not (Datamodule1.ADOQuery6.Eof) and (Datamodule1.ADOQuery7.Eof) do

Das entspricht logisch
Delphi-Quellcode:
while (not (Datamodule1.ADOQuery6.Eof)) and (Datamodule1.ADOQuery7.Eof) do
Sicher, dass das so stimmt?

da passiert leider auch nichts..

DieDolly 8. Mär 2020 16:59

AW: Datenbank- Quiz programmieren
 
Eventuell hier nachlesen. Lass alles bis zum Thema if-Anweisungen weg. Das brauchst du jetzt gerade noch nicht.
https://delphi-lernen.de/de/index.php?mid=109&vr=1

Reedx 8. Mär 2020 17:06

AW: Datenbank- Quiz programmieren
 
Zitat:

Zitat von DieDolly (Beitrag 1459164)
Eventuell hier nachlesen. Lass alles bis zum Thema if-Anweisungen weg. Das brauchst du jetzt gerade noch nicht.
https://delphi-lernen.de/de/index.php?mid=109&vr=1

naja darum gehts ja nicht. mir geht es darum warum das
"AdoQuery.Next" nicht funktioniert, da dort ja eigentlich dann der nächste eintrag aus der datenbank ausgewählt werden sollte.. aber das funktioniert halt nicht

ich hab davir schon 6 verschiedene units programmiert, wo Login Daten gespeichert werden, wo man neue Einträge in die DB hinzufügen und bearbeiten kann, also hab ich "grundlegende erfahrungen".. nur das jetzt will irgendwie nicht funktionieren und ich selbst finde diesmal nicht den knackpunkt.

DieDolly 8. Mär 2020 17:09

AW: Datenbank- Quiz programmieren
 
Zitat:

AdoQuery.Next" nicht funktioniert, da dort ja eigentlich dann der nächste eintrag aus der datenbank ausgewählt werden sollte.. aber das funktioniert halt nicht
Das hat DeddyH doch oben beantwortet.

Zitat:

ich hab davir schon 6 verschiedene units programmiert, wo Login Daten gespeichert werden, wo man neue Einträge in die DB hinzufügen und bearbeiten kann, also hab ich "grundlegende erfahrungen"..
Scheinbar fehlt dir leider genau das. Sonst hättest du nicht in 3 Zeilen gleich 2 Fehler, die man beim Drüberlesen finden sollte.

DeddyH 8. Mär 2020 17:12

AW: Datenbank- Quiz programmieren
 
Nochmal: deine Schleifenbedingung bedeutet, dass AdoQuery6 nicht am letzten Datensatz angekommen sein darf, AdoQuery7 aber muss. Und durch den fehlenden begin-end-Block wird nur eins der beiden Queries angesprochen. Korrigier das jetzt erst einmal, dann sehen wir weiter.

jobo 8. Mär 2020 17:15

AW: Datenbank- Quiz programmieren
 
Gut, wenn "schau mal genau hin" nicht hilft, dann sind Dir die "Spielregeln" anscheinend nicht klar.
Bringt es nun etwas, Dir zu sagen, mach da mal Begin End oder andere Klammerung drum? Der Code würde laufen, aber in der Prüfung bringt es Dich nicht weiter.

Mein erster Tipp:
Debuggen! Also zusehen, Schritt für Schritt, wie der Codezeiger durch Deinen Code läuft (und staunen)
Das ist sehr lehrreich!

Wenn du noch nie mit dem Debugger gearbeitet hast, 2 Möglichkeiten:
1. einfach loslegen, F7, F8 und vielleicht ein paar Brakepoints und los geht die Reise
2. Debug Ausgaben ala "ich bin jetzt bei dem Schritt 'query.next'" in ein Memofeld eintragen

2. kann man sehr dosiert machen und es reicht trotzdem zum Staunen. Besonders wenn man sieht, wo es lang geht und man immer noch nicht begreift warum. Nervig und vielleicht quälend aber lehrreich.

Reedx 8. Mär 2020 17:16

AW: Datenbank- Quiz programmieren
 
ich hab es jetzt so gemacht. Jetzt bleibt die Radiogroupbox aber komplett leer und zeigt weder frage noch antworten an

Delphi-Quellcode:
 for i:= 0 to 10 do
    begin
        Datamodule1.ADOQuery6.First;
        Datamodule1.ADOQuery7.First;
     while (not (Datamodule1.ADOQuery6.Eof) and (Datamodule1.ADOQuery7.Eof)) do
     begin
        Datamodule1.ADOQuery6.Next;
        Datamodule1.ADOQuery7.Next;

    //Frage in "Titel"
      rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
    //Antworten in Radiobuttons
      rg.Items.Clear;
      rg.Items.Add(Datamodule1.ADOQuery7.Fields[0].AsString);
      rg.Items.Add(Datamodule1.ADOQuery7.Fields[1].AsString);
      rg.Items.Add(Datamodule1.ADOQuery7.Fields[2].AsString);

    end;
       end;
          i:= i+1;

DieDolly 8. Mär 2020 17:19

AW: Datenbank- Quiz programmieren
 
Ich reagiere jetzt auf was anderes.
Was soll dieses
Delphi-Quellcode:
i:=+1;
dort?
Bzw das von dir abgeänderte
Delphi-Quellcode:
i:= i+1;


Es scheint wirklich so, als würdest du die Basis überhaupt nicht kennen und ihr, die Klasse, legt einfach drauf los.
Für gewöhnlich lehrt man als Lehrpersonal erst einmal die grundlegenden Begriffe und und und. Und fängt nicht gleich ohne Grundwissen vermittelt zu haben mit Datenbanken an.

jobo 8. Mär 2020 17:20

AW: Datenbank- Quiz programmieren
 
Ja, die Klammerung von Query6 und 7 EOF ist immer noch fehlerhaft.

Ich wollte da noch eine Sache loswerden (ist ja auch schon angeklungen)
Man könnte Frage und Antworten in einem Schwung laden, damit spart man sich das Handling von 2 Queries..
.. was meinst Du?
Aber vielleicht eine blöde Idee, den Fehler zu vermeiden statt zu korrigieren...

DeddyH 8. Mär 2020 17:21

AW: Datenbank- Quiz programmieren
 
Setz mal einen Haltepunkt innerhalb der while-Schleife.

DieDolly 8. Mär 2020 17:23

AW: Datenbank- Quiz programmieren
 
Ich schreibe es nur noch einmmal sicherheitshalber.
Hier möchte dich, auch wenn gerade gefühhlt auf dich eingedroschen wird, niemand ärgern. Es geht alleine darum, dass du etwas lernst und eventuelle Prüfungen bestehst.

DeddyH 8. Mär 2020 17:27

AW: Datenbank- Quiz programmieren
 
Vielleicht wäre es auch sinnvoller, den Code erst einmal zu vergessen und sich den Ablauf einmal klassisch auf Papier aufzuzeichnen, das kann ein Struktogramm, ein PAP oder einfach etwas eigenes sein, Hauptsache, man kann seinen Gedankengang später nachvollziehen. Wenn man dann der Meinung ist, dass das so funktioniert, formuliert man das dann in Code.

DieDolly 8. Mär 2020 17:29

AW: Datenbank- Quiz programmieren
 
Zum Beispiel hier:
https://www.diagrammeditor.de/

Kann dann so aussehen https://www.hsg-kl.de/faecher/inf/al...s/pap/PAP1.png

Reedx 8. Mär 2020 17:32

AW: Datenbank- Quiz programmieren
 
hab nun die 2. query gelöscht. Nun wird die Frage auch im ersten Radiobutton angezeigt, und nicht nur im Titel.. (deswegen ja ursprünglich die 2 Queries)

Delphi-Quellcode:
if lb.ItemIndex >=0 then
 begin
    rg.Visible:=true;
    Datamodule1.ADOQuery6.SQL.Clear;
    Datamodule1.ADOQuery6.SQL.Text:='SELECT Frage, L1, L2, L3 FROM Fragen WHERE Fach = ' +#39+lb.Items.Strings[lb.ItemIndex]+#39 +
                                    ' AND Schwierigkeit="1";';
    Datamodule1.ADOQuery6.Open;
 
    Datamodule1.ADOQuery6.First;

     while not Datamodule1.ADOQuery6.Eof do
     begin
        Datamodule1.ADOQuery6.Next;

    //Frage in "Titel"
      rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
    //Antworten in Radiobuttons
      rg.Items.Clear;
      rg.Items.Add(Datamodule1.ADOQuery6.Fields[0].AsString);
      rg.Items.Add(Datamodule1.ADOQuery6.Fields[1].AsString);
      rg.Items.Add(Datamodule1.ADOQuery6.Fields[2].AsString);
    end;
 
 
  end else
  begin
  application.MessageBox('Auswahlfehler!','Fehler');
  end;

DieDolly 8. Mär 2020 17:33

AW: Datenbank- Quiz programmieren
 
Müsst ihr das mit einer Datenbank machen? Wenn nicht würde ich es mit einer Ini-Datei machen.

Reedx 8. Mär 2020 17:35

AW: Datenbank- Quiz programmieren
 
Zitat:

Zitat von DieDolly (Beitrag 1459178)

ich weiß, ich kenne Struktogramme etc. und habe ein tool bereits dafür.. nur finde ich es gerade unpassend das zu machen, da mein Wille eigentlich deutlich ist und mir das diagramm nichts nützt, wenn der Quelltext nicht stimmt.
Ich möchte einfach nur, das beim klick eine neue frage mit neuen antworten aus meiner datenbank erscheint. mehr nicht.. kein checked:=true/false etc..

Reedx 8. Mär 2020 17:36

AW: Datenbank- Quiz programmieren
 
Zitat:

Zitat von DieDolly (Beitrag 1459180)
Müsst ihr das mit einer Datenbank machen? Wenn nicht würde ich es mit einer Ini-Datei machen.

ja müssen wir (leider)

DieDolly 8. Mär 2020 17:36

AW: Datenbank- Quiz programmieren
 
Zitat:

und mir das diagramm nichts nützt, wenn der Quelltext nicht stimmt.
Dafür sind Diagramme da - damit am Ende der Quelltext stimmt.

DeddyH 8. Mär 2020 17:40

AW: Datenbank- Quiz programmieren
 
Wenn man in einer Schleife die gesamte Datenmenge durchläuft und anschließend die Daten anzeigt, welchen Datensatz stellt man dann dar? Den letzten, oder? Dann nützt dir auch kein „Weiter“-Button. Aber klar, Struktogramme usw. braucht man ja nicht.

DieDolly 8. Mär 2020 17:42

AW: Datenbank- Quiz programmieren
 
Kannst du die Datenbankdatei und das Projekt mal hier anhängen?

Reedx 8. Mär 2020 17:46

AW: Datenbank- Quiz programmieren
 
Zitat:

Zitat von DieDolly (Beitrag 1459186)
Kannst du die Datenbankdatei und das Projekt mal hier anhängen?

datenbankdatei kann ich nicht anhängen, dann kommt "ungültiges Objekt"

p80286 8. Mär 2020 19:12

AW: Datenbank- Quiz programmieren
 
Wahrscheinlich ist es noch niemanden aufgefallen:
Delphi-Quellcode:
  Datamodule1.ADOQuery6.First;
  while not Datamodule1.ADOQuery6.Eof do
  begin
    Datamodule1.ADOQuery6.Next;

    //Frage in "Titel"
      rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
    //Antworten in Radiobuttons
      rg.Items.Clear;
      rg.Items.Add(Datamodule1.ADOQuery6.Fields[0].AsString);
      rg.Items.Add(Datamodule1.ADOQuery6.Fields[1].AsString);
      rg.Items.Add(Datamodule1.ADOQuery6.Fields[2].AsString);
    end;
So wird immer die zweite Antwort verarbeitet. Wenn es nur eine Gibt, macht es bumm!

darum:
Delphi-Quellcode:
  Datamodule1.ADOQuery6.First;
  while not Datamodule1.ADOQuery6.Eof do
  begin
    //Frage in "Titel"
    rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
    //Antworten in Radiobuttons
    rg.Items.Clear;
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[0].AsString);
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[1].AsString);
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[2].AsString);
    Datamodule1.ADOQuery6.Next;{---- weiter zum nächsten Datensatz oder EOF}
  end;
Und da auch einmal nichts zurück kommen könnte:
Delphi-Quellcode:
  Datamodule1.ADOQuery6.First;
  if Datamodule1.ADOQuery6.Eof then
  begin
    showmessage('Es wurden keine daten gefunden');
  end
  else {---- es wurden Daten geliefert}
  repeat
    //Frage in "Titel"
    rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
    //Antworten in Radiobuttons
    rg.Items.Clear;
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[0].AsString);
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[1].AsString);
    rg.Items.Add(Datamodule1.ADOQuery6.Fields[2].AsString);
    Datamodule1.ADOQuery6.Next;{---- weiter zum nächsten Datensatz oder EOF}
  until Datamodule1.ADOQuery6.Eof;
Das gefällt mir besser, aber das ist Geschmackssache.

Gruß
K-H

P.S.
Damals als ich noch in die Schule ging gab es Lehrer, die den falschen Beruf gewählt hatten und Schüler die selbst mit einfachen logischen Zusammenhängen überfordert waren. Ich vermute heute ist es nicht wesentlich anders, darum sollten wir uns jeden Kommentar zur Berufung einer Lehrperson oder eines Schülers verkneifen.

DeddyH 8. Mär 2020 19:27

AW: Datenbank- Quiz programmieren
 
Wieso wird denn immer in einer Schleife das Dataset durchlaufen? Ich würde ja bei der ersten Frage öffnen und bei Click auf den Button dann eins weiter positionieren. Oder übersehe ich da etwas?

p80286 8. Mär 2020 20:18

AW: Datenbank- Quiz programmieren
 
Jetzt verunsicherst Du mich. "normal" liefert eine Query 0..n Datensätze zurück. Bei 0 ist EOF gleich true.
bekommst Du 1..n Datensätze mußt Du mit .Next dadurch scrollen bis das EOF true ist wenn Du alle Datensätze haben willat. Aber wie läuft das mit den TDB...Komponenten? sind sind die hier im Einsatz?
Ach ja .First ist direkt nach .Open nicht notwendig, da der Zeiger direkt auf dem ersten Datensatz steht. Dieser wird durch .Next erst auf den nächsten Datensatz verschoben.

Gruß
K-H

DeddyH 8. Mär 2020 20:34

AW: Datenbank- Quiz programmieren
 
Nach einem Open stehe ich auf dem ersten Datensatz oder auf Eof, wenn es keinen Datensatz gibt. Wozu jetzt die Schleife, ich will doch initial den ersten?

p80286 8. Mär 2020 21:30

AW: Datenbank- Quiz programmieren
 
Gute Frage!
dann ist das also überflüssig und nicht nur ungeschickt.

Gruß
K-H

DeddyH 8. Mär 2020 22:09

AW: Datenbank- Quiz programmieren
 
Genau darauf will ich hinaus.

haentschman 9. Mär 2020 05:54

AW: Datenbank- Quiz programmieren
 
Moin...8-)
Zitat:

Ich würde ja bei der ersten Frage öffnen und bei Click auf den Button dann eins weiter positionieren. Oder übersehe ich da etwas?
+1 :zwinker:
(Poppcorn hol...) ... interessante Diskussion. :stupid:

@TE:
Zitat:

Aber klar, Struktogramme usw. braucht man ja nicht.
@TE: ...damit wäre das eindeutig klar, daß du ein Logik/Verständnis Problem hast. :roll:

Zitat:

datenbankdatei kann ich nicht anhängen, dann kommt "ungültiges Objekt"
...das komplette Projekt und die Datenbank in ein ZIP. :zwinker:

Reedx 9. Mär 2020 18:08

AW: Datenbank- Quiz programmieren
 
hab es so programmiert, aber stehe immer noch vor dem gleichen Problem, beim click auf dem button bleibt die frage + Antworten immer die gleichen und zeigt nicht die nächsten an..

Delphi-Quellcode:
procedure TFormle.ButtonnextClick(Sender: TObject);
begin
 if lb.ItemIndex >=0 then
 begin
    rg.Visible:=true;
    Datamodule1.ADOQuery6.SQL.Clear;
    Datamodule1.ADOQuery6.SQL.Text:='SELECT Frage, L1, L2, L3 FROM Fragen WHERE Fach = ' +#39+lb.Items.Strings[lb.ItemIndex]+#39 +
                                    ' AND Schwierigkeit="1";';
    Datamodule1.ADOQuery6.Open;

     if Datamodule1.ADOQuery6.Eof then
     begin
       showmessage('Keine Daten');
     end else
     begin
      repeat
          //Frage in "Titel"
         rg.Caption:= Datamodule1.ADOQuery6.Fields[0].AsString;
         //Antworten in Radiobuttons
         rg.Items.Clear;
         rg.Items.Add(Datamodule1.ADOQuery6.Fields[1].AsString);
         rg.Items.Add(Datamodule1.ADOQuery6.Fields[2].AsString);
         rg.Items.Add(Datamodule1.ADOQuery6.Fields[3].AsString);
         Datamodule1.ADOQuery6.Next;
      until Datamodule1.AdoQuery6.Eof;
     end;
  end else
  begin
  application.MessageBox('Auswahlfehler!','Fehler');
  end;

DieDolly 9. Mär 2020 18:11

AW: Datenbank- Quiz programmieren
 
Schick mal alles in einem zip-Archiv hier rüber bitte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz