Aller au menu - Aller au contenu

Icône TP : ZBiblio, la bibliothèque de films

Avatar
Mise à jour : 13/12/2010
23 410 visites depuis 7 jours, dont 205 sur ce chapitre classé 14/786
Pour mettre tout ce chapitre en pratique j'ai trouvé comme idée de TP une petite bibliothèque de films. Cette bibliothèque va bien sûr travailler surtout avec un objet de votre cru qui contiendra un film.

Bon je ne vous en dis pas plus, passons au cahier des charges.
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Le cahier des charges

Comme dans chaque TP, je vais quand même vous laisser faire ça vous même.

Donc je vais vous donner un cahier des charges, et quelques informations. Tout cela à pour but de vous guider et d'axer vos recherches et vos idées.

Eh oui parce-que les TP qu'on commence à attaquer sont d'une certaine envergure, vous allez vous confronter à des problèmes auxquels vous ne trouverez sûrement pas de solutions dans ce TP (tout dépend de la manière dont vous abordez la situation). Il va donc sûrement falloir (si vous êtes un minimum courageux et que vous ne sautez pas directement à la solution) que vous fassiez quelques recherches sur Google (je ne fais pas de pub :-° ) ou alors la MSDN de Microsoft, une bibliothèque recensant toutes les fonctions intégrées au Framework (une annexe ne tardera pas à sortir la concernant). Sinon, si votre problème n'a aucune solution, vous pouvez toujours demander une petite aide sur le forum du SDZ, section "Autres langages" en précédant le titre de votre topic par [VB.NET], ça aide à les distinguer.

Bien bien, excusez moi, je m'égare, le cahier des charges donc.

Ce TP à pour but de vous faire développer une bibliothèque de films (vous pouvez bien sûr transformer des films en musiques, images, ...). Je vais vous laisser libre court concernant le design, les méthodes de programmation. Je vous donne juste quelques lignes de guidage :

  • Les films dans la bibliothèque devront être listés dans une liste avec possibilité d'ouvrir la fiche d'un film pour plus d'informations.
  • La fiche d'un film contiendra des informations basiques : nom, acteurs, date de sortie, synopsis, tout ce que votre esprit pourra imaginer.
  • La possibilité de créer, modifier et supprimer un film (autrement dit la fiche d'un film).
  • Et pourquoi pas une fonction de recherche, dans de grandes collections de films.


Concernant la réalisation, je l'ai déjà dit, je le répète, vous faites comme vous voulez.
Quelques conseils cependant :

  • Un objet "Film" ou "FicheFilm" serait de rigueur pour contenir les informations d'une fiche film.
  • Une collection pour contenir toutes vos fiches ne serait pas une mauvaise idée ? :D
  • La sérialisation pour stocker vos films (je dis ça, je dis rien). :-°


Alors bien évidemment, comme pour les autres TP ne sautez pas directement à la solution. Essayez de chercher un minimum. Ce TP n'a rien de compliqué en soi, il va juste falloir que vous trouviez la bonne méthode pour agir entre les films et la liste. Bref, une réflexion qui a du bon.

Courage et à l'attaque :) .

La correction.

Avant tout je tiens à dire que la correction n'est pas universelle. Elle servira juste à ceux qui n'ont absolument pas réussi à manipuler les objets et autres collection à s'en tirer un minimum.

Mais si vous n'avez rien compris à ce TP et si vous n'avez pas été capable d'en réaliser un ébauche, je ne saurai que vous conseiller de recommencer la lecture de la partie sur la POO.

Pour les autres, chaque situation étant différente je vais tâcher de vous présenter un programme aussi concis et universel que possible.

Mon programme est composé de deux fenêtres. La première regroupant les fonctions de recherche, liste et visualisation d'une fiche. La seconde permettant la création et modification d'une fiche.

Je vais déjà vous détailler des deux fenêtres :

Image utilisateur
Fenêtre principale. Name : ZBiblio


Image utilisateur
Fenêtre d'ajout/modification. Name : AjoutEditionFilm


Voici mes deux fenêtres. Quelques contrôles spécifiques. Un DateTimePicker pour la sélection de la date et un NumericUpDown pour la sélection de la note.

Vous avez sans doutes remarqués les DropDownList pour les genres et le réalisateur. Elles sont là pour une fonctionnalité ultérieure qui permettra d'insérer les acteurs et genres déjà remplis sur des films pour permettre un choix rapide. Mais en attendant on peut s'en servir comme de simples TextBox en utilisant la propriété Text.

Je vous demanderai de vous passer de moqueries sur mes interfaces :lol: , je n'ai jamais eu l'âme d'un designer :( .

Bien bien, passons aux feuilles de code.

La classe Film



Code : VB.NET
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
Public Class Film

    Private _Nom As String
    Public Property Nom As String
        Get
            Return _Nom
        End Get
        Set(ByVal value As String)
            _Nom = value
        End Set
    End Property

    Private _DateSortie As Date
    Public Property DateSortie As Date
        Get
            Return _DateSortie
        End Get
        Set(ByVal value As Date)
            _DateSortie = value
        End Set
    End Property

    Private _Realisateur As String
    Public Property Realisateur As String
        Get
            Return _Realisateur
        End Get
        Set(ByVal value As String)
            _Realisateur = value
        End Set
    End Property

    Private _Genre1 As String
    Public Property Genre1 As String
        Get
            Return _Genre1
        End Get
        Set(ByVal value As String)
            _Genre1 = value
        End Set
    End Property

    Private _Genre2 As String
    Public Property Genre2 As String
        Get
            Return _Genre2
        End Get
        Set(ByVal value As String)
            _Genre2 = value
        End Set
    End Property

    Private _Acteurs As String
    Public Property Acteurs As String
        Get
            Return _Acteurs
        End Get
        Set(ByVal value As String)
            _Acteurs = value
        End Set
    End Property

    Private _Synopsis As String
    Public Property Synopsis As String
        Get
            Return _Synopsis
        End Get
        Set(ByVal value As String)
            _Synopsis = value
        End Set
    End Property

    Private _RemarquePerso As String
    Public Property RemarquePerso As String
        Get
            Return _RemarquePerso
        End Get
        Set(ByVal value As String)
            _RemarquePerso = value
        End Set
    End Property

    Private _NotePerso As Integer
    Public Property NotePerso As Integer
        Get
            Return _NotePerso
        End Get
        Set(ByVal value As Integer)
            _NotePerso = value
        End Set
    End Property

    Public Sub New()

    End Sub

    Public Sub New(ByVal Nom As String, ByVal DateSortie As Date, ByVal Realisateur As String, ByVal Genre1 As String, ByVal Genre2 As String, ByVal Acteurs As String, ByVal Synopsis As String, ByVal RemarquePerso As String, ByVal NotePerso As Integer)
        _Nom = Nom
        _DateSortie = DateSortie
        _Realisateur = Realisateur
        _Genre1 = Genre1
        _Genre2 = Genre2
        _Acteurs = Acteurs
        _Synopsis = Synopsis
        _RemarquePerso = RemarquePerso
        _NotePerso = NotePerso
    End Sub

    Public Sub Update(ByVal Nom As String, ByVal DateSortie As Date, ByVal Realisateur As String, ByVal Genre1 As String, ByVal Genre2 As String, ByVal Acteurs As String, ByVal Synopsis As String, ByVal RemarquePerso As String, ByVal NotePerso As Integer)
        _Nom = Nom
        _DateSortie = DateSortie
        _Realisateur = Realisateur
        _Genre1 = Genre1
        _Genre2 = Genre2
        _Acteurs = Acteurs
        _Synopsis = Synopsis
        _RemarquePerso = RemarquePerso
        _NotePerso = NotePerso
    End Sub

    'Je surcharge le Tostring
    Public Overrides Function ToString() As String
        Return _Nom
    End Function

End Class


Beaucoup de lignes pour ce qui concerne les propriétés. Mais c'est un passage obligé :) .

Le constructeur a deux signatures (une signature étant une façon de l'appeler) grâce à une surcharge. Une avec arguments, l'autre sans.

Une méthode Update permettant la Mise à jour en une ligne de tous les attributs de la fiche.

Et finalement une surcharge de ToString spécifiant qu'il faut retourner le nom du film lorsque j'utiliserai cette fonction.

La fenêtre principale : ZBiblio



Code : VB.NET
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
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) Handles MyBase.Load

        '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_GENRE1.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

End Class


Cette fenêtre contient les fonctions de sérialisation et désérialisation. En ce qui concerne la sérialisation elle s'effectue automatiquement lors de la fermeture de la fenêtre (autrement dit du programme). La désérialisation quand à elle, se lance au démarrage du programme en vérifiant bien évidemment la présence du fichier xml.

Une propriété permettant de modifier la variable _ListeFilms est publique de façon à pouvoir l'appeler depuis l'autre fenêtre. Il en va de même pour la méthode Update.

Pour le reste, je pense que mes commentaires sont assez explicites :D .

Fenêtre d'ajout et de modification.



Code : VB.NET
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Public Class AjoutEditionFilm

    Private _FilmAModifier As Film

    Sub New(ByVal FilmAModifier As Film)

        ' Cet appel est requis par le concepteur.
        InitializeComponent()

        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().

        'Recupere le film à modifier
        _FilmAModifier = FilmAModifier

    End Sub

    Private Sub AjoutEditionFilm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If _FilmAModifier Is Nothing Then
            'S'il ne contient rien, on en crée un nouveau
        Else
            'Sinon on recupère les infos et on les entre dans les cases correspondantes
            Me.TXT_ACTEURS.Text = _FilmAModifier.Acteurs
            Me.TXT_AVIS_PERSONNEL.Text = _FilmAModifier.RemarquePerso
            Me.TXT_NOM.Text = _FilmAModifier.Nom
            Me.TXT_SYNOPSIS.Text = _FilmAModifier.Synopsis
            Me.DDL_GENRE1.Text = _FilmAModifier.Genre1
            Me.DDL_GENRE2.Text = _FilmAModifier.Genre2
            Me.DDL_REALISATEUR.Text = _FilmAModifier.Realisateur
            Me.NUM_NOTE.Value = _FilmAModifier.NotePerso
            Me.DT_DATE_SORTIE.Value = _FilmAModifier.DateSortie
        End If

    End Sub

    Private Sub BT_SAVE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_SAVE.Click

        If _FilmAModifier Is Nothing Then
            'Enregistre notre film
            Dim MonFilm As New Film(Me.TXT_NOM.Text, Me.DT_DATE_SORTIE.Value, Me.DDL_REALISATEUR.Text, Me.DDL_GENRE1.Text, Me.DDL_GENRE2.Text, Me.TXT_ACTEURS.Text, Me.TXT_SYNOPSIS.Text, Me.TXT_AVIS_PERSONNEL.Text, Me.NUM_NOTE.Value)
            'On l'ajoute à la liste
            ZBiblio.ListeFilms.Add(MonFilm)
            MsgBox("Fiche correctement crée", vbOKOnly, "Confirmation")
        Else
            'Sinon on le modifie en récupérant son index dans la liste de la fenêtre parent
            ZBiblio.ListeFilms(ZBiblio.ListeFilms.IndexOf(_FilmAModifier)).Update(Me.TXT_NOM.Text, Me.DT_DATE_SORTIE.Value, Me.DDL_REALISATEUR.Text, Me.DDL_GENRE1.Text, Me.DDL_GENRE2.Text, Me.TXT_ACTEURS.Text, Me.TXT_SYNOPSIS.Text, Me.TXT_AVIS_PERSONNEL.Text, Me.NUM_NOTE.Value)
        End If

        'MAJ de la liste dans la fenêtre parent
        ZBiblio.UpdateListe()
        'Ferme la fenêtre d'édition
        Me.Close()
    End Sub

    Private Sub IMG_AFFICHE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IMG_AFFICHE.Click
        'Ultérieur ; possibilité d'ajouter une fiche.
    End Sub

End Class


J'ai ajouté manuellement le constructeur de cette fenêtre. Lorsque vous créez le constructeur, automatiquement il ajoute :

Code : VB.NET
1
2
3
4
' Cet appel est requis par le concepteur.
        InitializeComponent()

        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().


Il ne faut surtout pas effacer, c'est ce qui initialise les éléments graphiques. Ajoutez ce que vous voulez après. Personnellement j'ai demandé un argument au constructeur, cet argument étant le film à modifier. Si c'est nothing qui est passé, cela signifie que c'est une nouvelle fiche qu'il faut créer.

Pour le reste, même remarque : les commentaires doivent être assez clairs à mon avis.

Si un problème vient à vous bloquer, n'hésitez pas à laisser un commentaire sur ce chapitre détaillant votre problème.

Améliorations possibles

Concernant les amélioration possibles, je pense qu'il y a vraiment possibilité de faire évoluer ce petit logiciel jusqu'à le rendre agréable à l'utilisation.

  • Ajout d'une affiche de film. Cette affiche pourrait être sauvegardée dans un dossier les regroupant toutes.
  • Remplir mes DDL, ajouter autant d'éléments que de possibilités. Par exemple, pour les genres. Faites une recherche sur tous les genres de tous les films et créer une fonction permettant de les distinguer afin de garder des genre distincts, pas de double. Ce n'est qu'une idée :) .
  • Améliorer un peu l'interface, faire pourquoi pas un système d'onglets, une image de fond, etc.


Cette liste n'est évidemment pas exhaustive, elle ne dépend que de votre imagination. Je prévois cependant d'améliorer ce TP lors de la partie concernant les bases de données et une troisième version à la fin du tutoriel complet.
Chapitre précédent Sommaire Chapitre suivant

Partager

19 commentaires pour "TP : ZBiblio, la bibliothèque de films"
Note moyenne : 3.60 / 4 (543 votes)
Pseudo Commentaire
Hors ligne ezekiel16 # Posté le 04/01/2012 à 10:42:32

Avis : Très bon

Bonjour,
Qqun aurait-il une idée pour proposer a l'utilisateur de mettre une image et Surtout de l'enregistrer ? apparement ce n'est pas possible alors comment peut on faire ?

merci d'avance :)
Hors ligne axeldu70 # Posté le 21/01/2012 à 18:42:50
Avatar

Avis : Très bon

Ville : Froideconche
Pays : France métropolitaine

Chez moi non plus ca ne marche pas.

Merci.

HELP ME!!!!! http://www.siteduzero.com/forum-83-706 [...] html#r6813172
_______________________________________________________________________

Un petit geste pour la plannète svp
 
Hors ligne shurikenzl # Posté le 02/03/2012 à 14:35:12

Citation : polmiki
Trés bon Tuto, tout fonctionne correctement !
Ici ce sont les fichiers qui servent de base de données, mais il y une limite, car si on veut stocker des images! ça ne fonctionnera pas!
Les fichiers c'est bien seulement si on veut stocker du texte !

Oui et non, tu peux très bien te servir de ton fichier .xml pour stocker les chemins d'accès aux images.

Ensuite y'a plus qu'à faire ce qu'il faut pour afficher les dites images pendant l'execution du programme, grâce aux chemins d'accès du .xml.
Hors ligne shurikenzl # Posté le 02/03/2012 à 14:48:41

Citation : ezekiel16
Bonjour,
Qqun aurait-il une idée pour proposer a l'utilisateur de mettre une image et Surtout de l'enregistrer ? apparement ce n'est pas possible alors comment peut on faire ?

merci d'avance :)

Utilise une instance d'OpenFileDialog, avec les property et fonctions qui vont bien.

Tu récupères le chemin séléctionné dans l'instance OpenFileDialog grace à la property FileName.
Stock ce chemin dans une variable de type string dans l'objet représentant ta fiche de film.
Ensuite, tu sérialises l'objet dans ton .xml.

Pour lire l'image ensuite, y'a plus qu'à utiliser le chemin.
Hors ligne la génie # Posté le 06/05/2012 à 16:34:44
allahoma zidni 3ilma
Avatar

Avis : Bon

J'ai bien apprécie ce TP ...j'ai un TP de Gestion d'emprunt ressemble un peu à votre TP ...
bon je vais vous montrer le tp ou bien le projet :
ce projet ,le cas bibliothèque ,a pour objectif la conception d'un système d'information permettant d'aider à la gestion de la bibliothèque et plus précisément, aider à la gestion des emprunts,réservations et retours des livres .
le logiciel , qui fera suite à cette analyse , devra permettre donc de gérer les personnes inscrites ou souhaitant s'inscrire à la bibliothèque ,gérer l'emprunt , le retour et le rappel de livre ainsi que les réservations par des personnes inscrites.
C'est tout... mais le problème ...je n'ai pas réussi à faire ce projet ...aidez-moi s'il vous plaît.En attendant votre réponse . Merci

la ilaha ila lah,mohamed rassoulo lah
 

Voir tous les commentaires