Bonjour,

J'espère que la question est assez claire dans le titre (sinon, je vous prie de m'en excuser). Je me suis fait une classe Affiche85x11 qui hérite de la classe PrintDocument, afin d'ajouter à mon application un modèle d'affiche à imprimer (tous les objets graphiques, dont une image JPEG, sont minutieusement placés et j'obtiens par Win32 les marges physiques de l'imprimante pour calculer le bon point d'origine de tout mon modèle d'affiche..

Le code pour lancer l'impression de l'affiche:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
        Dim prnDialog85x11 As New PrintDialog
        Dim affiche As New Affiche85x11
        prnDialog85x11.Document = affiche
        prnDialog85x11.AllowSomePages = True
        Try
            If prnDialog85x11.ShowDialog() = Windows.Forms.DialogResult.OK Then
                affiche.Print()
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            ' Peu importe ce qui arrive, il faut «caller» le destructeur
            If Not affiche Is Nothing Then
                affiche.Dispose()
            End If
        End Try
Je ne suis pas sûre d'avoir placé le bon code à la bonne place, car je ne vois aucun changement dans l'utilisation de la mémoire par mon application. Possible que je ne comprenne pas clairement comment fonctionne la classe PrintDocument (dont dérive la mienne), est-ce que la fonction Dispose et/ou Finalize est appelée sitôt l'impression terminée (rendant mon Finally inutile)? Ou encore faut-il que je force un Dispose/Finalize, et autrement que ce que j'ai écrit ci-haut?

Merci de bien vouloir éclairer ma lanterne.