Hay!
Wie mache ich mir ein Quizübungsprogramm?
 |
This image has been resized. Click this bar to view the full image. The original image is sized 536x425. |
Erstmal das anlegen
Dann noch:
1 Timer
1 Menustrip
Richtextbox2 & 3 sind Borderstyle -> None.
Nun kommen die Codes:
Als erstes ein paar Sachen deklarieren:
Code:
Dim sw As Boolean
Dim akfrage As String
Dim akantw As String
Dim akindex As Integer = 0
Dim timems As Integer = 0
Dim times As Integer = 0
Dim fontnormal As New Font("Comic Sans MS", 
Dim lines As String() = IO.File.ReadAllLines(Application.StartupPath + "/data/fragen.txt")
Code:
'Form Load Event
akfrage = lines(akindex)
'Die aktuelle Frage ist die Reihe (akindex = 0).
Dim parts As String() = Split(akfrage, "~")
'Jetzt splitten wir den String (akfrage).
Timer1.Start()
'Timer1 Starten
RichTextBox1.SelectionColor = Color.Green
'Richtextbox1 Fontfarbe ist Green
RichTextBox1.AppendText("Frage: ")
'Richtextbox1 "Frage: " adden
RichTextBox1.SelectionColor = Color.DarkGreen
'Richtextbox1 Fontfarbe ist DarkGreen
RichTextBox1.AppendText(parts(0) & vbCr)
'Richtextbox1 die Frage (den ersten Teil von parts) adden.
RichTextBox1.SelectionColor = Color.Black
'Richtextbox1 Fontfarbe ist Black
Code:
'Textbox1.KeyDown
If TextBox1.Text = Nothing = False Then
'Wenn der Text aus der Textbox nicht nichts ist ;D Dann ...
If e.KeyCode = Keys.Enter Then
'Wenn die gedrückte Taste Enter ist, dann...
If sw = False Then
'Wenn Pause (sw) ausgeschaltet ist, dann ...
akantw = TextBox1.Text
'Die aktuelle Antwort ist der Text der Textbox1
RichTextBox1.AppendText(akantw & vbCr)
'Richtextbox1 die aktuelle Antwort adden.
Dim parts As String() = Split(akfrage, "~")
'Jetzt splitten wir den String (akfrage).
'Dabei ist parts(0) die Frage und Parts(1) die Antwort.
If parts(1).ToLower = " " & akantw.ToLower Then
'Wenn die richtige Antwort die getippte Antwort ist, dann ...
RichTextBox1.SelectionColor = Color.Red
'Richtextbox1 Fontfarbe ist Red
RichTextBox1.AppendText("Richtig! Deine Zeit: " & times & "," & timems & vbCr)
'Richtextbox1 "Richtig! Deine Zeit: " und die Zeit adden.
Dim time As Integer = times & "." & timems
'time ist eine Zahl. gebildet aus den Sekunden + Millisekunden (z.B.: 1.22)
If time < Label2.Text Then
'Wenn die ereichte Zeit kleiner ist als die Bestzeit, dann ..
RichTextBox1.SelectionColor = Color.Red
'Richtextbox1 Fontfarbe ist Red
Dim font As New Font("Comic Sans MS", 11, FontStyle.Bold)
'Die Schriftart ist Comic Sans MS, Größe 11, Fontstyle ist Bold(Fett)
RichTextBox1.SelectionFont = font
'Richtextbox1 font ist Comic Sans MS, Größe 11, Fontstyle ist Bold(Fett)
RichTextBox1.AppendText("Neue Bestzeit: " & times & "," & timems & "!!" & vbCr)
'Richtextbox1 "Neue Bestzeit: " und die Zeit adden.
RichTextBox1.SelectionFont = fontnormal
'Richtextbox1 hat wieder normale Schriftart
Label2.Text = times & "." & timems
'Die TopZeit ist die neue Zeit
RichTextBox2.Text = parts(0)
'Die Toplist-Frage = parts(0) (Frage)
RichTextBox3.Text = parts(1)
'Die Toplist-Antw. = parts(1) (Antwort)
End If
Dim rnd As New Random
'Neuen Zufall generieren
akindex = rnd.Next(0, lines.Count)
'Die Reihe in der txt ist die per Zufall generierte Zahl zwischen 0 und der
'Anzahl der Reihen in fragen.txt
akfrage = lines(akindex)
'Die aktuelle Frage ist die Reihe (akindex = Zufall).
parts = Split(akfrage, "~")
Timer1.Stop()
RichTextBox1.SelectionColor = Color.Green
'Richtextbox1 Fontfarbe ist Green
RichTextBox1.AppendText("Frage: ")
'Richtextbox1 "Frage: " adden
RichTextBox1.SelectionColor = Color.DarkGreen
'Richtextbox1 Fontfarbe ist DarkGreen
RichTextBox1.AppendText(parts(0) & vbCr)
'Richtextbox1 die Frage (den ersten Teil von parts) adden.
RichTextBox1.SelectionColor = Color.Black
'Richtextbox1 Fontfarbe ist Black
timems = 0
'Die Millisekunden wieder auf 0 Stellen
times = 0
'Die Sekunden wieder auf 0 Stellen
Timer1.Start()
'Timer1 starten
End If
TextBox1.Clear()
'Textbox1 leeren
Else
RichTextBox1.SelectionColor = Color.Red
'Richtextbox1 Fontfarbe ist Red
RichTextBox1.AppendText("Pause ist aktiviert" & vbCr)
'Richtextbox1 "Pause ist aktiviert" adden.
RichTextBox1.SelectionColor = Color.Black
'Richtextbox1 Fontfarbe ist Black
End If
End If
End If
Code:
'Timer1
Timer1.Interval = 10
'Das Timer Event soll alle 10 Millisekunden stattfinden.
If timems > 99 Then
'Wenn die Millisekunden über 99 sind, dann ..
timems = 0
'Millisekunden sind 0
times += 1
'Sekunden + 1
Else
timems += 1
'Millisekunden + 1
End If
Code:
'Überspringen-Button
Dim parts As String() = Split(akfrage, "~")
'Jetzt splitten wir den String (akfrage).
'Dabei ist parts(0) die Frage und Parts(1) die Antwort.
Dim rnd As New Random
'Neuen Zufall generieren
akindex = rnd.Next(0, lines.Count)
'Die Reihe in der txt ist die per Zufall generierte Zahl zwischen 0 und der
'Anzahl der Reihen in fragen.txt
akfrage = lines(akindex)
'Die aktuelle Frage ist die Reihe (akindex = Zufall).
Timer1.Stop()
'Timer1 Stoppen
RichTextBox1.SelectionColor = Color.Green
'Richtextbox1 Fontfarbe ist Green
RichTextBox1.AppendText("Frage: ")
'Richtextbox1 "Frage: " adden
RichTextBox1.SelectionColor = Color.DarkGreen
'Richtextbox1 Fontfarbe ist DarkGreen
RichTextBox1.AppendText(parts(0) & vbCr)
'Richtextbox1 die Frage (den ersten Teil von parts) adden.
RichTextBox1.SelectionColor = Color.Black
'Richtextbox1 Fontfarbe ist Black
timems = 0
'Millisekunden sind 0
times = 0
'Sekunden sind 0
Timer1.Start()
'Timer1 starten
Code:
'verlauf-Leeren-Button
RichTextBox1.Clear()
'Richtextbox leeren
Code:
'Neues Spiel
RichTextBox1.Clear()
'Richtextbox leeren
TextBox1.Clear()
'Textbox leeren
RichTextBox2.Clear()
'Richtextbox leeren
RichTextBox3.Clear()
'Richtextbox leeren
Label2.Text = 999.99
'TopZeit = 999.99
timems = 0
'Millisekunden sind 0
times = 0
'Sekunden sind 0
Code:
'Vorsagen
Dim parts As String() = Split(akfrage, "~")
'Jetzt splitten wir den String (akfrage).
'Dabei ist parts(0) die Frage und Parts(1) die Antwort.
RichTextBox1.SelectionColor = Color.Red
'Richtextbox1 Fontfarbe ist Red
RichTextBox1.AppendText("Richtige Antwort: " & parts(1) & vbCr)
'Antwort adden.
RichTextBox1.SelectionColor = Color.Black
'Richtextbox1 Fontfarbe ist Black
timems = 0
'Millisekunden sind 0
times = 0
'Sekunden sind 0
Timer1.Stop()
'Timer1 Stoppen
Dim rnd As New Random
'Neuen Zufall generieren
akindex = rnd.Next(0, lines.Count)
'Die Reihe in der txt ist die per Zufall generierte Zahl zwischen 0 und der
'Anzahl der Reihen in fragen.txt
akfrage = lines(akindex)
'Die aktuelle Frage ist die Reihe (akindex = Zufall).
Dim parts2 As String() = Split(akfrage, "~")
'Jetzt splitten wir den String (akfrage).
'Dabei ist parts(0) die Frage und Parts(1) die Antwort.
RichTextBox1.SelectionColor = Color.Green
'Richtextbox1 Fontfarbe ist Black
RichTextBox1.AppendText("Frage: ")
'"Frage: " Adden
RichTextBox1.SelectionColor = Color.DarkGreen
'Richtextbox1 Fontfarbe ist Black
RichTextBox1.AppendText(parts2(0) & vbCr)
'Richtextbox Frage adden.
RichTextBox1.SelectionColor = Color.Black
'Richtextbox1 Fontfarbe ist Black
Code:
'Stop/Weiter
If sw = True Then
'Wenn Pause aktiviert ist, dann
sw = False
'Pause ausstellen
Timer1.Start()
'Timer1 starten
Else
'Oder
sw = True
'Pause aktivierren
Timer1.Stop()
'Timer1 stoppen
End If
Und wenn ihr noch Speichern/Laden wollt:
Code:
'Speichern
Dim regKey As RegistryKey = Registry.CurrentUser.CreateSubKey("SoftwareQuizÜbungRekord")
'Ein RegistryKey erstellen, der ein neues Sub erstellt.
regKey = Registry.CurrentUser.CreateSubKey("SoftwareQuizÜbungRekord")
'RegistryKey erstellt ein neues Sub.
regKey.SetValue("z", Label2.Text)
'RegistryKey setzt die Value "z" mit dem Inhalt "Label2.Text"
regKey.SetValue("q", RichTextBox2.Text)
'RegistryKey setzt die Value "q" mit dem Inhalt "Richtextbox2.Text"
regKey.SetValue("a", RichTextBox2.Text)
'RegistryKey setzt die Value "z" mit dem Inhalt "Richtextbox3.Text"
Code:
'Laden
Dim regKey As RegistryKey = Registry.CurrentUser.OpenSubKey("SoftwareQuizÜbungRekord")
'Ein RegistryKey öffnen, der das Sub öffnet.
regKey = Registry.CurrentUser.OpenSubKey("SoftwareQuizÜbungRekord")
'RegistryKey erstellt das Sub.
Label2.Text = regKey.GetValue("z")
'Label2.Text = der Wert "z" des RegKeys
RichTextBox2.Text = regKey.GetValue("q")
'RichTextBox2.Text = der Wert "q" des RegKeys
RichTextBox3.Text = regKey.GetValue("a")
'RichTextBox3.Text = der Wert "a" des RegKeys
(c) KoRn'
mfg KoRn'