Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tutoriel langage vb.net

Créer une bibliothèque de film

    3 avril 2011 à 14:05:44

    Bonjour :p,
    J'ai essayé de créer une bibliothèque de film grâce au langage vb.net dans le tutoriel de se site.
    Mais je n'arrive à le faire.
    Quelqu'un pourrai me dire quel est le problème dans ce code?

    Imports System.Xml.Serialization
    Imports System.IO
    
    Public Class ZBiblio
    
        Private _FenetreAjout As AjoutEditionFilm
        Private _FilmEnVisualisation As Film
        Private _ListeFilms As List(Of Film)
        Public Property ListeFilms As List(Of Film)
            Get
                Return _ListeFilms
            End Get
            Set(ByVal value As List(Of Film))
                _ListeFilms = value
            End Set
        End Property
    
        Private Sub ListeFilms_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    
            'Instancie une nouvelle liste
            _ListeFilms = New List(Of Film)
    
            'Récupère les infos
            Deserialisation()
    
            'MAJ la liste de films
            UpdateListe()
    
        End Sub
    
        Private Sub ListeFilms_FormClosing(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosing
            'Sérialise les films lors de la fermeture
            Serialisation()
        End Sub
    
        Private Sub LB_LISTE_FILMS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LB_LISTE_FILMS.SelectedIndexChanged
    
            'On vérifie qu'on a sélectionné quelquechose
            If Not Me.LB_LISTE_FILMS.SelectedItem Is Nothing Then
                'Retrouve le film avec ce nom
                For Each FilmALister As Film In _ListeFilms
                    If FilmALister.Nom = LB_LISTE_FILMS.SelectedItem.ToString Then
                        'L'insère dans une variable globale
                        Me._FilmEnVisualisation = FilmALister
                    End If
                Next
    
                'On MAJ les infos de la fiche
                Me.LBL_TITRE.Text = Me._FilmEnVisualisation.Nom
                Me.LBL_DATE_SORTIE.Text = Me._FilmEnVisualisation.DateSortie.ToShortDateString 'La date seule
                Me.LBL_GENRE.Text = Me._FilmEnVisualisation.Genre1
                Me.LBL_GENRE2.Text = Me._FilmEnVisualisation.Genre2
                Me.LBL_REALISATEUR.Text = Me._FilmEnVisualisation.Realisateur
                Me.LBL_ACTEURS.Text = Me._FilmEnVisualisation.Acteurs
                Me.LBL_SYNOPSIS.Text = Me._FilmEnVisualisation.Synopsis
                Me.LBL_AVIS_PERSONNEL.Text = Me._FilmEnVisualisation.RemarquePerso
                Me.LBL_NOTE.Text = Me._FilmEnVisualisation.NotePerso
    
            End If
    
        End Sub
    
        Public Sub UpdateListe()
            'On vide la liste et on la reremplit
            Me.LB_LISTE_FILMS.Items.Clear()
            'Parcours les films de la bibliotheque
            For Each FilmALister As Film In _ListeFilms
                'Remplit la liste en se basant sur le nom (vu que j'ai surchargé tostring)
                'A le même effet que FilmALister.Nom sans la surcharge.
                Me.LB_LISTE_FILMS.Items.Add(FilmALister)
            Next
        End Sub
    
    #Region "Boutons modif fiche"
    
        Private Sub BT_SUPPRIMER_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_SUPPRIMER.Click
    
            'Confirmation
            If MsgBox("Etes vous certain de vouloir supprimer ce film ?", vbYesNo, "Confirmation") Then
                'On le retire de la liste
                Me._ListeFilms.Remove(_FilmEnVisualisation)
            End If
    
            'MAJ
            UpdateListe()
    
        End Sub
    
        Private Sub BT_NOUVELLE_FICHE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_NOUVELLE_FICHE.Click
            'Si nouveau film, on passe nothing
            _FenetreAjout = New AjoutEditionFilm(Nothing)
            _FenetreAjout.Show()
        End Sub
    
        Private Sub BT_MAJ_FICHE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_MAJ_FICHE.Click
            'Si une maj on passe le paramètre du film actuel
            _FenetreAjout = New AjoutEditionFilm(_FilmEnVisualisation)
            _FenetreAjout.Show()
        End Sub
    
    #End Region
    
    #Region "Sauvegarde et récupération"
    
        Private Sub Deserialisation()
            If File.Exists("BibliothequeFilm.xml") Then
                'On ouvre le fichier et recupere son flux
                Dim FluxDeFichier As Stream = File.OpenRead("BibliothequeFilm.xml")
                Dim Deserialiseur As New XmlSerializer(GetType(List(Of Film)))
                'Désérialisation et convertion de ce qu'on récupère dans le type "Film"
                _ListeFilms = Deserialiseur.Deserialize(FluxDeFichier)
                'Fermeture du flux
                FluxDeFichier.Close()
            End If
        End Sub
    
        Private Sub Serialisation()
            'On crée le fichier et récupère son flux
            Dim FluxDeFichier As FileStream = File.Create("BibliothequeFilm.xml")
            Dim Serialiseur As New XmlSerializer(GetType(List(Of Film)))
            'Serialisation et écriture
            Serialiseur.Serialize(FluxDeFichier, _ListeFilms)
            'Fermeture du fichier
            FluxDeFichier.Close()
        End Sub
    
    #End Region
    
    #Region "Section recherche"
    
        Private Sub RemplissageChampsRecherche()
            'Fonction utilisée plus tard pour pré-replir les DDL de genres / réalisteurs ...
        End Sub
    
        Private Sub BT_RECHERCHE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_RECHERCHE.Click
            Recherche()
        End Sub
    
        Private Sub BT_EFFACER_RECHERCHE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_EFFACER_RECHERCHE.Click
            Me.TXT_TITRE.Text = ""
            Me.DDL_ACTEUR.Text = ""
            Me.DDL_ANNEE.Text = ""
            Me.DDL_GENRE.Text = ""
            Me.DDL_REALISATEUR.Text = ""
    
            UpdateListe()
        End Sub
    
        Private Sub Recherche()
    
            'On vide la liste et on la reremplit
            Me.LB_LISTE_FILMS.Items.Clear()
            'Parcours les films de la bibliotheque
            For Each FilmALister As Film In _ListeFilms
    
                If Me.TXT_TITRE.Text <> "" Then
                    If FilmALister.Nom.Contains(Me.TXT_TITRE.Text) Then
                        Me.LB_LISTE_FILMS.Items.Add(FilmALister)
                    End If
                End If
    
                If Me.DDL_ACTEUR.Text <> "" Then
                    If FilmALister.Acteurs.Contains(Me.DDL_ACTEUR.Text) Then
                        Me.LB_LISTE_FILMS.Items.Add(FilmALister)
                    End If
                End If
    
                If Me.DDL_ANNEE.Text <> "" Then
                    If CDate(FilmALister.DateSortie).Year = Me.DDL_ANNEE.Text Then
                        Me.LB_LISTE_FILMS.Items.Add(FilmALister)
                    End If
                End If
    
                If Me.DDL_GENRE.Text <> "" Then
                    If FilmALister.Genre1.Contains(Me.DDL_GENRE.Text) Or FilmALister.Genre2.Contains(Me.DDL_GENRE.Text) Then
                        Me.LB_LISTE_FILMS.Items.Add(FilmALister)
                    End If
                End If
    
                If Me.DDL_REALISATEUR.Text <> "" Then
                    If FilmALister.Realisateur.Contains(Me.DDL_REALISATEUR.Text) Then
                        Me.LB_LISTE_FILMS.Items.Add(FilmALister)
                    End If
                End If
    
            Next
    
        End Sub
    
    #End Region
    
        Private Sub BT_MAJ_FICHE_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_MAJ_FICHE.Click
    
        End Sub
    End Class
    


    • Partager sur Facebook
    • Partager sur Twitter
      3 avril 2011 à 14:23:44

      Citation : Tickles

      Mais je n'arrive à le faire.
      Quelqu'un pourrai me dire quel est le problème dans ce code?


      Si tu nous disais ce que tu rencontres comme difficulté, ça nous donnerait déjà des pistes pour t'aider. Parce que là comme ça... o_O
      • Partager sur Facebook
      • Partager sur Twitter
        3 avril 2011 à 14:37:41

        Les problèmes dans ce code sont "rechercher()" (ligne 136 et ligne 49). :euh:
        Le logiciel me dit qu'il y a une erreur. :o
        • Partager sur Facebook
        • Partager sur Twitter
          3 avril 2011 à 14:53:46

          Et quelle est cette erreur ?
          • Partager sur Facebook
          • Partager sur Twitter
            3 avril 2011 à 15:04:50

            Le logiciel dit: "Un accès à la propriété doit assigner la propriété ou utiliser sa valeur"
            et
            "'Recherche' est déjà déclaré en tant que 'Friend WithEvents Recherche As System.Windows.Forms.GroupBox' dans ce class ".

            • Partager sur Facebook
            • Partager sur Twitter
              3 avril 2011 à 15:28:50

              Bonjour,

              Dans le code que tu nous as copié, tu as certainement supprimé des lignes et du coup les erreurs ne correspondent plus aux lignes.

              Pour la fonction Recherche c'est tout simplement parce que tu as un contrôle (une GroupBox dans notre cas) dans ta Form qui a déjà le nom de "Recherche". Il suffit de le renommer en "RechercheGroupBox" par exemple (par la même occasion, comme ça, tu respecteras les conventions .NET).

              Pour l'autre erreur, faudrait préciser.


              PS : Le tuto ne respecte pas beaucoup les conventions de nommages .NET :-° , y'a une raison ?
              • Partager sur Facebook
              • Partager sur Twitter
                3 avril 2011 à 17:38:34

                Citation : Guillaume21

                PS : Le tuto ne respecte pas beaucoup les conventions de nommages .NET :-° , y'a une raison ?


                Tu as raison, ça fait un moment que je me dis que ces noms de contrôles sont décidément affreux.
                Je vais voir ce qu'on peut faire :)
                • Partager sur Facebook
                • Partager sur Twitter

                Tutoriel langage vb.net

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown