gazghul33
Messages postés18Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention22 avril 2007
-
11 avril 2007 à 23:08
cs_lermite222
Messages postés492Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 2 juillet 2012
-
12 avril 2007 à 18:00
J'ai un problème avec du code (partie en rouge), il reste faux quoi qu'il arrive.
Do
n = n + 1
MsgBox Picture1(Index + n).Picture = Picture1(Index).PictureLoop Until (Picture1(Index + n).Picture Picture1(Index).Picture) Or n 3
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 12 avril 2007 à 00:10
le test du handle, parce c'est la propriété par défaut sera toujours faux
bon supposons qu'il y a 4 images (index 1 à 4)
et qu'il n'y a qu'un nombre limité d'images à charger
Dim i As Integer
Dim x As Integer
Dim Tableau(4) As String
' on met le nom des images à charger dans un tableau
Tableau(1) = "C:\IMAGES\01.bmp"
Tableau(2) = "C:\IMAGES\02.bmp"
Tableau(3) = "C:\IMAGES\03.bmp"
Tableau(4) = "C:\IMAGES\04.bmp"
' on charge les images au hasard
Randomize
For i = 1 To 4
x = Int(Rnd * 4) + 1
Picture1(i).Tag = x
Picture1(i).Picture = LoadPicture(Tableau(x))
Next
' et on teste si 2 images successives sont identiques
For i = 1 To 3
If Picture1(i).Tag = Picture1(i + 1).Tag Then
MsgBox i & " et " & i + 1
End If
Next
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 11 avril 2007 à 23:19
même si c'est les même images le handle ne sera pas identique
sauf si les deux pictures sont vides, dans ce cas ce sera zéro
MsgBox Picture1(1).Picture
MsgBox Picture1(1).Picture.Handle
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 11 avril 2007 à 23:33
il doit tester si 2 pictures ont des images identiques parmis les 3
donc 1 avec 2, 2 avec 3, ... et ben c'est fini
c'est au moment où tu charges tes images que tu sais lesquelles tu as mises
sinon après c'est difficile, à moins de tester pixel par pixel
cs_lermite222
Messages postés492Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 2 juillet 20124 11 avril 2007 à 23:35
Bonjour
Je ne vois pas ce que tu veux faire avec ta routine, de plus j'ai eu beau retourner l'aide pour MsgBox, je n'ai pas trouvé qu'il pouvait affiché des images.
ou alors, c'est le nom de l'image que tu veux affiché ?
Plus d'explication Svp
Cordialement
louis
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 11 avril 2007 à 23:43
je pense que ça ira avec ça :
Do While n<=3
If (Picture1(Index + n).Picture = Picture1(Index).Picture) Then
MsgBox index & " / " n
'tu sauras alors de quelles images il s' agit
Exit Do
End If
Loop
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 12 avril 2007 à 09:24
Salut,
Je veux juste rebondir sur un truc (même si le problème est résolu)
> [auteurdetail.aspx?ID= 1025868 lermite222] : "Je ne vois pas ce que tu veux faire avec ta routine, de plus j'ai eu
beau retourner l'aide pour MsgBox, je n'ai pas trouvé qu'il pouvait
affiché des images." tu pourrais testé les différentes lignes avant de dire que MSGBOX doit afficher des Images et que ce
Lorsque tu écris:
MsgBox Picture1(Index + n).Picture = Picture1(Index).Picture le MSgbox montrera Vrai ou Faux Lorsque tu écris:
MsgBox Picture1(Index + n).Picture MSgbox Affichera le Handle de la Picture du PictureBox
Ce qui est équivalent à MsgBox Picture1(Index + n).Picture.Handle
@+: =89254 Ju£i?n Pensez: Réponse acceptée
PS: si je me suis trompé dans ce que je dis, MERCI de me corriger
cs_lermite222
Messages postés492Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 2 juillet 20124 12 avril 2007 à 18:00
Réponse à jrivet
Bon.. si je me suis tromper merci de me corriger. et excuser moi.
Mais c'est plutôt mon explication qui prète à confusion, je ne vois toujours pas à quoi sert sont MSGBOX, si ce n'est que de créer un point d'arrèt
de plus msgbox comme écrit ne retourne rien !!!
Désolé de te contredire mais j'ai tester, avec
et check est toujours Faux
Ce qui vient bien à dire que l'approche faite n'est pas la bonne
debbug
print Picture1(0).Picture=-301654024
print Picture1(1).Picture=-1459281872
Suggétion
Private Sub Command1_Click()
Dim check As Boolean
Static n As Integer
n = n + 1
If n > 2 Then n = 1
If Picture1(0).Point(100, 100) = Picture1(n).Point(100, 100) Then
check = True
End If
MsgBox check
End Sub
cela fonctionne
Si je me trompe encore, merci de me corriger.
cordialement
louis