4 pièce(s) jointe(s)
Supprimer une image d'un UserForm après l'avoir chargée
Bonjour,
C'est encore moi avec mes images ! :mrgreen:
Bon... J'ai un UserForm dans lequel je charge 32 images.
Par la suite, je souhaite pouvoir les "retirer" quand je clique dessus.
Ainsi, grâce à l'aide de Robert et Patrick, j'initialise mon UserForm de la sorte :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Option Explicit
Dim MesImages(1 To 32) As New Classe1
Private Sub UserForm_Initialize()
Dim i As Byte
For i = 1 To 32
Set MesImages(i).Bt = Me.Controls("Image" & i)
MesImages(i).Id_Joueur = Int((i - 1) / 8 + 1)
Next i
Call Load_image
End Sub |
Je charge mes images (dans un module) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Sub Load_image()
Dim i As Byte, j As Byte
For j = LBound(oJoueur, 1) To UBound(oJoueur, 1)
For i = LBound(oJoueur, 2) To UBound(oJoueur, 2)
UserForm1.Controls("Image" & (j - 1) * 8 + i).Picture = LoadPicture("mon_chemin" & oJoueur(j, i).Nombre & "_" & oJoueur(j, i).Couleur & ".jpg")
UserForm1.Controls("Image" & (j - 1) * 8 + i).Tag = oJoueur(j, i).Nombre & "_" & oJoueur(j, i).Couleur
UserForm1.Controls("Image" & (j - 1) * 8 + i).PictureSizeMode = 1
Next i
Next j
End Sub |
Et quand je clique dessus (dans un module de classe) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Public WithEvents Bt As MSForms.Image
Public Id_Joueur As Byte
Private Sub Bt_Click()
Dim oStr() As String
'Bt.Picture = LoadPicture()
MsgBox Bt.Picture 'Premier point
Bt.Picture = Nothing
MsgBox Bt.Picture 'Second point
Bt.PictureSizeMode = 0
oStr = Split(Bt.Tag, "_")
UserForm1.Controls("Carte_J" & Id_Joueur).Picture = LoadPicture("mon_chemin" & oStr(LBound(oStr)) & "_" & oStr(UBound(oStr)) & ".jpg")
UserForm1.Controls("Carte_J" & Id_Joueur).PictureSizeMode = 1
Call Poser_carte(oStr(LBound(oStr)), oStr(UBound(oStr)), Id_Joueur)
'MsgBox Id_Joueur
End Sub |
Or, quand j'applique la méthode Bt.Picture = LoadPicture("") ou Bt.Picture = LoadPicture() ou Bt.Picture = Nothing l'image ne disparaît pas "physiquement"... J'entend par là que je peux toujours la voir... Cependant, il semble que le lien entre mon image et le UserForm soit bien supprimé...
Dans le code précédent, j'ai précisé deux commentaires.
Le 'Premier point me permet de récupérer une valeur pour m'assurer que l'image est bien sétée :
Pièce jointe 188826
Ensuite, je tente de supprimer l'image et là, erreur :
Pièce jointe 188825
... sur la ligne :
Pièce jointe 188824
Donc je pense bien que l'image n'est plus liée mais... elle est toujours visible... :cry:
Pièce jointe 188827
Qu'est-ce que je fais de mal ?
Par avance, je vous remercie et reste disponible pour tout complément !
Cordialement,
Kimy