Imports System.Drawing.Printing
Imports System.Media

Public Class Form1
    Dim intKlicks As Integer = 0
    Dim intAnzahl As Integer = 0
    Dim intSound As Integer = 0
    Private Const strSPIELANLEITUNG = "schiebespiel.pdf"

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim Tipp As New ToolTip  ' deklarieren new
        ' eigenschaften der anzeige tooltipptext
        Tipp.AutoPopDelay = 5000
        Tipp.InitialDelay = 1000
        Tipp.ReshowDelay = 500
        Tipp.IsBalloon = True
        Tipp.ShowAlways = False
        ' textzuweigung
        Tipp.SetToolTip(CmdBeenden, "Das Spiel beenden")
        Tipp.SetToolTip(CmdEinfach, "Öffnet einfache Meldefenster")
        Tipp.SetToolTip(CmdKomplex, "Öffnet erweiterte Meldefenster")
        Tipp.SetToolTip(CmdSound, "Abspielen eines Sounds im Hintergrund")
        Tipp.SetToolTip(CmdSpielanleitung, "Anzeige des Spielanleitung im PDF-Standardprogramm")
        Tipp.SetToolTip(LblSpielanleitung, "Klicken um die Spielanleitung im PDF-Format zu öffnen")
        Tipp.SetToolTip(CmdTransparent, "Anzeige eines transparenten Fensters")
        Tipp.SetToolTip(CmdSoundStopp, "Beendet das Abspielen einer Sounddatei")
        Tipp.SetToolTip(TxtEingabe, "Textfeld zur Eingabe von Zahlen ")
        ' schaltflächen beschriften
        CmdBeenden.Text = "B&eenden" : CmdEinfach.Text = "Ein&fache Meldung"
        CmdKomplex.Text = "&Komplexe Meldungen"
        CmdSound.Text = "S&ound spielen" : CmdSpielanleitung.Text = "Spie&lanleitung"
        CmdSoundStopp.Text = "Sound &abbrechen"
        CmdTransparent.Text = "&Transparentes Fenster"
        TxtEingabe.Text = ""
    End Sub
    Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = Keys.F1 Then
            ZeigeSpielAnleitung()
        End If
    End Sub

    Private Sub BeendeDasSpiel()
        If MnuSoundAn.Checked Then
            Try
                My.Computer.Audio.Play("FRAGE.WAV",
                          AudioPlayMode.Background)
            Catch ex As Exception
                '--
            End Try
        End If
        Dim strMeldung As String = "Bist Du sicher," _
                    & vbCrLf & "dass Du das Spiel beenden möchtest?"
        Dim strTitel As String = "Spiel beenden"
        Dim buttons As MessageBoxButtons = MessageBoxButtons.YesNo
        Dim DefaultButton As MessageBoxDefaultButton = MessageBoxDefaultButton.Button2
        Dim Icon As MessageBoxIcon = MessageBoxIcon.Question
        Dim intResultat As DialogResult
        '-- aktion auswerten
        intResultat = MessageBox.Show(strMeldung, strTitel, buttons, Icon, DefaultButton)
        If (intResultat = DialogResult.Yes) Then
            Close()
        End If
    End Sub
    Private Sub SoundEinstellungen()
        If MnuSoundAn.Checked Then
            MnuSoundAn.Checked = False : MnuSoundAus.Checked = True
        Else
            MnuSoundAn.Checked = True : MnuSoundAus.Checked = False
        End If
    End Sub

    Private Sub CmdTransparent_Click(sender As Object, e As EventArgs) Handles CmdTransparent.Click
        FrmTransparent.LblMeldung.Text = "Treffer"
        FrmTransparent.ShowDialog()
    End Sub

    Private Sub LblSpielanleitung_Click(sender As Object, e As EventArgs) Handles LblSpielanleitung.Click
        ZeigeSpielAnleitung()
    End Sub

    Private Sub CmdBeenden_Click(sender As Object, e As EventArgs) Handles CmdBeenden.Click
        BeendeDasSpiel()
    End Sub

    Private Sub MnuSpielBeenden_Click(sender As Object, e As EventArgs) Handles MnuSpielBeenden.Click
        BeendeDasSpiel()
    End Sub

    Private Sub MnuSoundAn_Click(sender As Object, e As EventArgs) Handles MnuSoundAn.Click
        SoundEinstellungen()
    End Sub

    Private Sub MnuSoundAus_Click(sender As Object, e As EventArgs) Handles MnuSoundAus.Click
        SoundEinstellungen()
    End Sub

    Private Sub ZeigeSpielAnleitung()
        Try
            Process.Start(System.IO.Path.Combine(
                  Application.StartupPath,
                  strSPIELANLEITUNG))
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub MnuInfoAnleitung_Click(sender As Object, e As EventArgs) Handles MnuInfoAnleitung.Click
        ZeigeSpielAnleitung()
    End Sub

    Private Sub CmdEinfach_Click(sender As Object, e As EventArgs) Handles CmdEinfach.Click
        '  kurzformen
        intAnzahl += 1
        Select Case intAnzahl
            Case 1
                MessageBox.Show("", "",
                MessageBoxButtons.OK)
            Case 2
                MsgBox("Kurzform")
            Case 3
                MessageBox.Show("Kurzform", "Mit Titelleiste")
            Case 4
                MessageBox.Show("Ja und Nein", "Titelleiste",
                      MessageBoxButtons.YesNo)
                intAnzahl = 0
        End Select
    End Sub
    Private Sub CmdKomplex_Click(sender As Object, e As EventArgs) Handles CmdKomplex.Click
        intKlicks += 1
        Select Case intKlicks
            Case 1
                MessageBox.Show("Auf dem Fenster", "Titelleiste",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question,
                    MessageBoxDefaultButton.Button2)
            Case 2
                MessageBox.Show(CInt(intKlicks) & " Klicks", "Mit Default",
                    MessageBoxButtons.AbortRetryIgnore,
                    MessageBoxIcon.Exclamation,
                    MessageBoxDefaultButton.Button3)
            Case 3
                MessageBox.Show(CInt(intKlicks) & " Klicks" & vbCrLf &
                       "Neue Zeile", "2 Zeilen",
                        MessageBoxButtons.YesNoCancel,
                        MessageBoxIcon.Question,
                        MessageBoxDefaultButton.Button2)
            Case 4
                MessageBox.Show(CInt(intKlicks) & " Klicks" & vbCrLf &
                      "Zweite Zeile" & vbCrLf & "Dritte Zeile", "Kein Default",
                      MessageBoxButtons.YesNoCancel,
                      MessageBoxIcon.Information)
                intKlicks = 0
        End Select
    End Sub

    Private Sub CmdSound_Click(sender As Object, e As EventArgs) Handles CmdSound.Click
        If Not MnuSoundAn.Checked Then
            MsgBox("Die Wiedergage von Souddateien" & vbCrLf & " ist ausgeschaltet.")
            Exit Sub                     '---------------------- exit
        End If
        intSound += 1
        Select Case intSound
            Case 1
                Try
                    My.Computer.Audio.PlaySystemSound(
                         System.Media.SystemSounds.Beep)
                Catch ex As Exception
                    ' keine aktion
                End Try
            Case 2
                Try
                    My.Computer.Audio.Play("StartMusic.wav",
                         AudioPlayMode.Background)
                Catch ex As Exception
                    ' keine aktion
                End Try
            Case 3
                Try
                    My.Computer.Audio.Play("RATTLE.WAV",
                          AudioPlayMode.WaitToComplete)
                Catch ex As Exception
                End Try
            Case 4
                Try
                    My.Computer.Audio.Play("StartMusic.wav",
                             AudioPlayMode.Background)
                Catch ex As Exception
                End Try
            Case 5
                Try
                Catch ex As Exception
                    My.Computer.Audio.Play("StartMusic.wav",
                         AudioPlayMode.BackgroundLoop)
                End Try
                intSound = 0
        End Select
    End Sub

    Private Sub CmdSoundStopp_Click(sender As Object, e As EventArgs) Handles CmdSoundStopp.Click
        My.Computer.Audio.Stop()
    End Sub

    Private Sub CmdSpielanleitung_Click(sender As Object, e As EventArgs) Handles CmdSpielanleitung.Click
        ZeigeSpielAnleitung()
    End Sub

    Private Sub TxtEingabe_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TxtEingabe.KeyPress
        Select Case Asc(e.KeyChar)
            Case 48 To 57, 8
                ' zahlen 0 bis 9 , entfernen
            Case Else
                e.Handled = True
        End Select
    End Sub


    Private Sub MnuSpielNeues_Click(sender As Object, e As EventArgs) Handles MnuSpielNeues.Click
        MessageBox.Show("Den Menüeintrag >Neues Spiel< gewählt.")
    End Sub

    Private Sub MnuInfoAllgemeines_Click(sender As Object, e As EventArgs) Handles MnuInfoAllgemeines.Click
        MessageBox.Show("Es stehen keine allgemeine Infos zu Verfügung.")
    End Sub

End Class
