Windows Form nach Option Strict ON nicht aufrufbar

  • VB.NET

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von KenJy_L4F.

    KenJy_L4F schrieb:

    Player.vb:Zeile 15:
    Setz da einen Haltepunkt drauf und sieh Dir die Variable
    AxWindowsMediaPlayer1.currentMedia an, die wird Nothing sein.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Naja...
    Ich kann hier nicht alles Posten... kann aber hier gedownloadet werden...

    dl.dropboxusercontent.com/u/73611832/PlayerForm.txt
    dl.dropboxusercontent.com/u/73611832/MainForm.txt
    Falls ihr braucht auch die MainForm...
    Sorry...
    Bellum et Pax.
    Omne initium est difficile.
    -KenJy ;D
    Und Ja, habe nachgegucht und "media = nothing" stimmt... ._. versteht nur nicht ganz...

    -.- Option Strict ON ist blöde... -.-
    Bellum et Pax.
    Omne initium est difficile.
    -KenJy ;D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „KenJy_L4F“ ()

    KenJy_L4F schrieb:

    -.- Oftion Strict ON ist blöde... -.-


    Was hat es damit zu tun? Du weist einer Variable schon ganz am Anfang einen Wert zu, den es noch gar nicht gibt. Vorher wurde einfach irgendwas wohl zugewiesen, deswegen hattest du keine Fehlermeldung (die Fehlermeldung kommt vom CType, er kann kein Nothing als Argument haben). Es ist doch gut, wenn Option Strict On dich auf Fehler hinweist, die du sonst nie gesehen hättest.

    VB.NET-Quellcode

    1. Public Class Player
    2. 'Dim CurrentS As String = "00"
    3. 'Dim CurrentM As String = "00"
    4. 'Dim CurrentH As String = "00"
    5. Dim Laenge As String
    6. Dim Switch As Integer = 0
    7. 'Public FromArg As Boolean
    8. 'Dim Argcheck As New System.Threading.Thread(AddressOf Argchecking)
    9. Dim PlaylistName As String = "Unbekannte Playlist..."
    10. Dim Media As WMPLib.IWMPMedia3 = CType(AxWindowsMediaPlayer1.currentMedia, WMPLib.IWMPMedia3)
    11. Public Sub ListBox_Save(ByVal ListBox As ListBox, ByVal sFile As String)
    12. ' Inhalt einer ListBox speichern


    Weise der "Media" erst einen Wert zu, wenn du ihn auch brauchst. Dann ist er auch nicht Nothing.

    VB.NET-Quellcode

    1. Dim PlayerForm As New Player
    2. Player.ShowDialog()
    3. Me.Hide()

    Was fällt auf? Er erstellt eine Player-Instanz, nutzt aber die Klasse. Richtig wäre folgendes:

    VB.NET-Quellcode

    1. Dim PlayerForm As New Player
    2. PlayerForm.ShowDialog()
    3. Me.Hide()
    Mit freundlichen Grüßen,
    Thunderbolt
    @sonne75 Sorry. Ich habe den Code jetzt geupdatet. Auf Dropbox war noch der alte. Aber es hatte Funktioniert und jetzt kann ich auch die Player Form aufrufen. Habe folgenden Code geändert:

    Ich habe die Einweisung der Variable Media jetzt HIER raus genommen.

    VB.NET-Quellcode

    1. Dim PlaylistName As String = "Unbekannte Playlist..."
    2. Dim Media As WMPLib.IWMPMedia3 = CType(AxWindowsMediaPlayer1.currentMedia, WMPLib.IWMPMedia3)
    3. Public Sub ListBox_Save(ByVal ListBox As ListBox, ByVal sFile As String)


    Und hier eingefügt, wo es gebraucht wird.

    VB.NET-Quellcode

    1. Try
    2. Dim Media As WMPLib.IWMPMedia3 = CType(AxWindowsMediaPlayer1.currentMedia, WMPLib.IWMPMedia3)
    3. TitleName.Text = Media.getItemInfoByType("Author", String.Empty, 0).ToString() & " - " & Media.getItemInfoByType("Title", String.Empty, 0).ToString()
    4. Catch
    5. TitleName.Text = WMPlayer.currentMedia.name
    6. End Try

    Und jetzt kann ich die Form aufrufen, den Player benutzen und bis jetzt alle funktionen nutzen... (bin gerade wieder am Testen...

    VIELEN Lieben dank das ihr mir geholfen habt und so viel lust hattet mir zu helfen.
    Lieben Gruß KenJy
    Bellum et Pax.
    Omne initium est difficile.
    -KenJy ;D
    Noch als kleiner Tip, ich würde auf Try-Catch hier verzichten und lieber abfragen ob was sinnvolles in der Try Variable steht.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    MemoAnMichSelbst schrieb:

    Noch als kleiner Tip, ich würde auf Try-Catch hier verzichten und lieber abfragen ob was sinnvolles in der Try Variable steht.


    Wie jzt. was "sinnvolles"? ich habe das so gemacht, damit (wenn ein Musik stüch kein Titel oder Artisten besitzt, dann der Datei name (ohne extension) angezeigt wird.
    Bellum et Pax.
    Omne initium est difficile.
    -KenJy ;D
    Dann solltest du lieber abfragen ob das der Fall ist und dann entsprechend vorgehen.
    Dafür gibts ja die gute alte If-Abfrage.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Quasi
    IF Titel in der Datei = Nothing Or Artist in der Datei = Nothing Then
    Gebe den Dateinamen aus
    Else
    Gebe Titel und Artisten aus
    End IF (Jetzt nur als bspl.)
    Bellum et Pax.
    Omne initium est difficile.
    -KenJy ;D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „KenJy_L4F“ ()