AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Schwierigkeitsgrad, aber wie!?
Thema durchsuchen
Ansicht
Themen-Optionen

Schwierigkeitsgrad, aber wie!?

Ein Thema von aerotech · begonnen am 24. Jun 2004 · letzter Beitrag vom 27. Jun 2004
Antwort Antwort
Seite 1 von 2  1 2      
aerotech

Registriert seit: 27. Mai 2004
124 Beiträge
 
#1

Schwierigkeitsgrad, aber wie!?

  Alt 24. Jun 2004, 13:07
Hi, weiß einer, wie ich den Schwierigkeitsgrad meiner Quizfragen ändern kann!?
Also, ich habe 3 Tabellen (quizfragen_leicht, quizfragen_mittel, quizfragen_schwer)
Jetzt würde ich gerne einstellen, das die ersten 5 Fragen aus der leichten Tabelle entnommen werden, die nächsten 4 aus der mitleren, und die letzen 6 aus der schweren TB.
So arbeitet das Prog im Moment,...hoffe ihr könnt mir helfen!

Delphi-Quellcode:
procedure TForm1.DBText1Click(Sender: TObject);
begin
  if tquizfragen.FieldByName('L1').AsInteger = 1 then begin
     tquizfragen.first;
     tquizfragen.moveby(random(tquizfragen.RecordCount));
     Stufen; // Führt die Prozedur "Stufen" aus, zu finden in
              // Zeile 88.
  end
  else
     Form4.Show;
end;
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Schwierigkeitsgrad, aber wie!?

  Alt 24. Jun 2004, 13:24
Zitat von aerotech:
Hi, weiß einer, wie ich den Schwierigkeitsgrad meiner Quizfragen ändern kann!?
Also, ich habe 3 Tabellen (quizfragen_leicht, quizfragen_mittel, quizfragen_schwer)
Die Fragen in 3 Tabellen zu verteilen war schon ein Design-Fehler !!!
Du musst alle Fragen in einer Tabelle unterbringen und diese Tabelle zusätzlich um das Feld "Schwierigkeit" erweitern. (Schwierigkeit = 1: leicht, Schwierigkeit = 5: super schwer)
Du verwendest statt einer TTable-Komponente dann eine TQuery-Komponente. Die SQL-Anweisung sieht so aus:
SELECT * FROM quizfragen WHERE Schwierigkeit>=:s1 AND Schwierigkeit<=:s2 :s1 und :s2 sind Parameter und werden zur Laufzeit gesetzt.
Damit stehen alle Möglichkeiten offen:
- Fragen einer Schwierigkeitsstufe
- Fragen aus versch. Schwierigkeitsstufen
- zuerst einfache Fragen und dann schwierigere Fragen (Query schliesen, Parameter ändern, Query neu öffnen)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Schwierigkeitsgrad, aber wie!?

  Alt 24. Jun 2004, 13:25
Zitat von aerotech:
...Also, ich habe 3 Tabellen (quizfragen_leicht, quizfragen_mittel, quizfragen_schwer)
..
Hai aerotech,

warum teilst Du die Fragen auf drei Tabellen auf? Ich würde alle in eine Tabelle schreiben. Dann noch ein Feld für den Schwierigkeitsgrad das z.B werte von 1 bis 3 enthält.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Schwierigkeitsgrad, aber wie!?

  Alt 24. Jun 2004, 13:32
Du könntest auch um das derzeitige Design beizubehalten (würde auch eher ein anderes Design nehmen) den Tabellennamen der Abfrage als Variable definieren und diesen entsprechend verändern.
Günter
  Mit Zitat antworten Zitat
aerotech

Registriert seit: 27. Mai 2004
124 Beiträge
 
#5

Re: Schwierigkeitsgrad, aber wie!?

  Alt 24. Jun 2004, 15:38
Zitat von shmia:
Zitat von aerotech:
Hi, weiß einer, wie ich den Schwierigkeitsgrad meiner Quizfragen ändern kann!?
Also, ich habe 3 Tabellen (quizfragen_leicht, quizfragen_mittel, quizfragen_schwer)
Die Fragen in 3 Tabellen zu verteilen war schon ein Design-Fehler !!!
Du musst alle Fragen in einer Tabelle unterbringen und diese Tabelle zusätzlich um das Feld "Schwierigkeit" erweitern. (Schwierigkeit = 1: leicht, Schwierigkeit = 5: super schwer)
Du verwendest statt einer TTable-Komponente dann eine TQuery-Komponente. Die SQL-Anweisung sieht so aus:
SELECT * FROM quizfragen WHERE Schwierigkeit>=:s1 AND Schwierigkeit<=:s2 :s1 und :s2 sind Parameter und werden zur Laufzeit gesetzt.
Damit stehen alle Möglichkeiten offen:
- Fragen einer Schwierigkeitsstufe
- Fragen aus versch. Schwierigkeitsstufen
- zuerst einfache Fragen und dann schwierigere Fragen (Query schliesen, Parameter ändern, Query neu öffnen)
wie kann ich eine query in mein delphi projekt einbauen? was muss ich dabei beachten?
Ich will das ein Feld aus einer Datenbank mit Hilfe der Query abgefragt wird. Also wenn ne 1 drin steht, dann sollen später nur noch diese Werte ausgelesen werden. Wo ich den SQL Befehl reinschreiben muss weiß ich schon, und wie dieser lauten muss, weiß ich auch.
Ne kleine Anleitung wäre nett
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Schwierigkeitsgrad, aber wie!?

  Alt 24. Jun 2004, 16:29
Hai aerotech,

Zitat von aerotech:
....Ne kleine Anleitung wäre nett
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM quizfragen WHERE Schwierigkeit>=:s1 AND Schwierigkeit<=:s2';
  Query1.ParamCheck := True;
  Query1.ParamByName('s1').Value := 1; // Alle Fragen von Schwierigkeitsgrad 1
  Query1.ParamByName('s2').Value := 2; // bis Schwierigkeitsgrad 2
  Query1.Open;
end;
Gibt dir einen Bereich zurück. Wenn Du immer nur einen Schwierigkeitsgrad abfragen möchtest:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM quizfragen WHERE Schwierigkeit = :s1';
  Query1.ParamCheck := True;
  Query1.ParamByName('s1').Value := 1; // Alle Fragen von Schwierigkeitsgrad 1
  Query1.Open;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
aerotech

Registriert seit: 27. Mai 2004
124 Beiträge
 
#7

Re: Schwierigkeitsgrad, aber wie!?

  Alt 24. Jun 2004, 17:17
hmmm, ver steh ich nicht ganz...

Also zuerst hatte ich nur eine Datasource und TTable Komponente!

TDatasourse
DataSet: tquizfragen
Name: DataSource_quizfragen

TTable
DatabaseName: quizfragen
Name: tquizfragen
TableName: quizfragen

Jetzt sagt ihr, ich soll meine 3 Tabellen zu einer komprimieren, sprich alle Fragen da rein schreiben und diese mit einer weiteren Spalte "Schwierigkeitsgrad" erweitern. 1 - 3 sind dann die jeweiligen Inhalte für den Schwierigkeitsgrad.

Desweiteren habt ihr gesagt ich soll anstatt einer TTable-Komponente eine TQuery-Komponente, also hab ich diese auch entfernt.

Jetzt "TQuery"
DatabaseName: quizfragen
DataSource: DataSource_quizfragen
Name: Query_quizfragen

Aber was nun!? Durch diese Veränderung findet meine TDataSource Komponente kein DataSet mehr, und somit wird keine Frage sowie Antwort mehr geholt.

So sehen meine jeweiligen Antwortlabel aus, die man klicken kann, davon habe ich 4 nur jeweil einem anderen Inhalt (L1-L4)

Delphi-Quellcode:
procedure TForm1.DBText2Click(Sender: TObject);
begin
  if tquizfragen.FieldByName('L2').AsInteger = 1 then begin
     tquizfragen.first;
     tquizfragen.moveby(random(tquizfragen.RecordCount));
     Stufen; // Führt die Prozedur "Stufen" aus, zu finden in
              // Zeile 88.
  end
  else
     Form4.Show;
end;
Außerdem habe ich hier noch die Prozedur Stufen die meine Labels nach jeder richtig beantworteten Frage hochzählen soll und in die entsprechende Farbe ~ rot, setzen soll.

Delphi-Quellcode:
procedure Stufen;
begin

  count:= count +1;

  with Form1 do begin
    case count of

     1: begin
     Lb_Stufe1.Font.color := clred;
     Lb_Stufe15.Font.color := clWhite;
     end;

     2: begin
     Lb_Stufe2.Font.color := clred;
     Lb_Stufe1.Font.color := clWhite;
     end;

     3: begin
     Lb_Stufe3.Font.color := clred;
     Lb_Stufe2.Font.color := clWhite;
     end;

     4: begin
     Lb_Stufe4.Font.color := clred;
     Lb_Stufe3.Font.color := clWhite;
     end;

     5: begin
     Lb_Stufe5.Font.color := clred;
     Lb_Stufe4.Font.color := clWhite;
     end;

     6: begin
     Lb_Stufe6.Font.color := clred;
     Lb_Stufe5.Font.color := clWhite;
     end;

     [...] bis 15

    end;
  end;
end;
  Mit Zitat antworten Zitat
aerotech

Registriert seit: 27. Mai 2004
124 Beiträge
 
#8

Re: Schwierigkeitsgrad, aber wie!?

  Alt 25. Jun 2004, 17:13
plss help!
  Mit Zitat antworten Zitat
MarkusB

Registriert seit: 3. Apr 2004
Ort: Hamburg
105 Beiträge
 
#9

Re: Schwierigkeitsgrad, aber wie!?

  Alt 25. Jun 2004, 20:49
Hi aerotech!

Ich habe bemerkt, dass das Gebiet der Datenbank-Programmierung neu für Dich ist. Ich bin zwar auch kein Profi, trotzdem versuche ich mal Dir zu helfen.

Erst mal einige allgemeine Bemerkungen:

Also generell: in Datenbanken ohne Tabellen geht gar nichts! Du musst deine Daten (in deinem Fall Fragen und Antworten) irgendwo halten. Dazu benutzt man Tabellen. Queries sind so zu sagen eine Betrachtungshilfe. Mit ihnen kannst Du auf Daten einer oder mehreren Tabellen auf unterschiedliche Weise zugreifen (anders gesagt „die Daten aus unterschiedlichen Betrachtungspunkten anschauen“). Dazu muss man auch ein bisschen SQL kennen. Aber wenn Du schon Tabelle(n) mit Daten hast, kannst Du (im Fall einer einfachen Anwendung) auch ohne Queries (d.h. auch ohne SQL) auskommen.

Nun zu Deinem Problem:

Wie ich Dich verstanden habe, hast Du 3 Tabellen mit Fragen und willst von jeder Tabelle entsprechend 5, 4 und 6 Fragen holen. Ob das vernünftig war, 3 Tabellen statt einer zu definieren, wage ich nicht zu beurteilen. IMO ist - bei einer kleinen (privaten) Quizanwendung, die an die Datenbank so gut wie keine Anforderungen (bezüglich z.B. Performance) stellt - das eigentlich Wurst! Hauptsache ist, dass Du genau weißt welche Daten in welchen Tabelle vorhanden sind. Schwierige Fragen in „quizfragen_schwer“, mittlere Fragen in „quizfragen_mittel“ und einfache Fragen in „quizfragen_leicht“.

Ich hoffe, dass folgender „Pseudo-Code“ Dir weiterhelfen wird:

Code:
frage_nr := 0
antwort := ok

while antwort = ok and frage_nr < 15 do
begin
   frage_nr := frage_nr + 1

   case frage_nr of
   1..5: hole eine Frage aus der Tabelle Quizfragen_leicht
         prüfe antwort
   6..9: hole eine Frage aus der Tabelle Quizfragen_mittel
         prüfe antwort
   else hole eine Frage aus der Tabelle Quizfragen_schwer
         prüfe antwort
   end
end
Viele Grüße
Markus
  Mit Zitat antworten Zitat
aerotech

Registriert seit: 27. Mai 2004
124 Beiträge
 
#10

Re: Schwierigkeitsgrad, aber wie!?

  Alt 26. Jun 2004, 15:22
http://forum.funnypage.info/ja.jpg

watt nu? (cursor steht hinter "do")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz