Charger un groupe de picturebox

elbertondu62 Messages postés 42 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 22 janvier 2006 - 2 avril 2005 à 20:42
elbertondu62 Messages postés 42 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 22 janvier 2006 - 6 avril 2005 à 19:45
Bonjour a tous je suis etudiant en bts IRIS, je suis entrain de faire
mon projet qui est le tetris. Je ne suis pas un pro du vb cela fait 8
mois que j'en fait.

La generation des pieces, couleurs foncionnent bien. J'ai donc utiliser
un groupe de controle d'une picturebox. j'ai copier coller une meme
picturebox avec les index 1 2 3 normale.

Mon pb vient du fait quand la piece arrive en bas et bien si je fais un load carre1(i) ba y me di ke c deja charger.

Ce qui normalement si j'ai bien tout compris grace a load je charge des
nouvelles picturebox. Comme il me dit que c'est deja charger je met un
autre chiffre en incrémentant la variable ms il me dit que le groupe de
controle "chiffre" n'existe pas.

La je n'est plus d'idée de comment charger une nouvelle picturebox et
que l'ancienne figure ne s'efface pas comme c'est le cas quand je n'est
pas de load.

J'ai egalement essayer la methode unload carre1(i) mais il veut pas car il vient d'etre créer ???me dit-il

y-a t-il un autre moyen de charger des nouvelles picturebox ?

Je vous remercie beaucoup de votre aide. Si vous voulez voir un peu mon code demandez moi.


wazaaa breton

10 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 avril 2005 à 21:22
en VB6 ça marche très bien, même juste après la création.

i = 1
Load Picture1(i)
Unload Picture1(i)

c'est quoi "chiffre" ?

Daniel
0
elbertondu62 Messages postés 42 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 22 janvier 2006
2 avril 2005 à 21:45
chiffre c la variable pour aller de lindex 0 a 3
For i = 0 To 9

For j = 0 To 13

For k = 0 To 3

If ((Carre1(k).Left >= (i
* 360) + 720) And (Carre1(k).Left <= (((i + 1) * 360) + 720))) Then

If
(Carre1(k).Top >= (480 + (j * 360))) And (Carre1(k).Top <= (480 +
((j + 1) * 360))) Then ' Teste la Colonne

Tempj = j

Tempi = i

Pos(Tempj, Tempi) = True

End If

End If

Next k

Next j

Next i

For y = 0 To 3

If (Pos(Tempj, Tempi) <> Tetris(Tempj + 1, Tempi) And (Carre1(y).Top < 5160)) Then

Carre1(y).Top = Carre1(y).Top +
50 'permet de
faire descendre la piece

Else

'Unload Carre1(y)

Tetris(Tempj, Tempi) = True

j = 0

Do While (j < 14)

j = j + 1

Verif = 0

For i = 0 To 9

If (Tetris(j, i) = True) Then


Verif = Verif + 1


If Verif = 10 Then


For k = 0 To 9


Tetris(j, k) = False


Carre1(Carrevisi(j, k)).Visible = False 'on efface les carres


Carre1(y).Visible = False


scorej1 = scorej1 + 1


Score1 = "Score :" & scorej1


For p = 0 To 14 - j


Tetris(j - p, k) = Tetris(j + p, k) 'les autres carres doivent descendre


Carre1(Carrevisi(j - p, k)).Top = Carre1(Carrevisi(j + p, k)).Top + 360


Next p


Next k


End If

End If

Next i

Loop

Carrevisi(Tempj, Tempi) = Carre1(y)

Label2 = Verif

Carre = Carre + 5

'Load Carre1(Carre + y) ' jai essayer de bidouiller la mais jarrive pas ce ki me donne

Carre1(Carre + y).Visible = True'un groupe de controle n'existe pas

For w = 0 To 3

Carre1(Carre + w).Top = Carre1(Carre + w).Top + 480 'permet de mettre la picturebox en ho

Carre1(Carre + w).Left = 2160 'decalle la picturebox

Next w

Call
piece_suiv
'appel la fonction qui donne un nombre aléatoire

Call coulpiece(piece_suivante) 'appel la fonction qui change la couleur

Call createpiece(piece_suivante) 'appel la fonction qui permet de changer les pieces

End If

Next y

End Sub
enfet ce que je cherche a faire c'est que la piece qui
arrive en bas s'arrete puis en créer une nouvelle avec les picturebox
que j'ai.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 avril 2005 à 22:27
pas tout compris, parce qu'il y a une boucle avec w de 0 à 3 qui correspond pas aux carrés créés.

ou alors il faut créer les 4 carrés et faire référence avec w en fonction de y
Load Carre1(Carre + y)
Load Carre1(Carre + y + 1)
Load Carre1(Carre + y + 2)
Load Carre1(Carre + y + 3)
Carre1(Carre + y).Visible = True
For w = y To y + 3
Carre1(Carre + w).Top = Carre1(Carre + w).Top + 480
Carre1(Carre + w).Left = 2160
Next w

sinon avec un seul carré, on peut pas mettre la boucle avec w
Load Carre1(Carre + y)
Carre1(Carre + y).Visible = True
Carre1(Carre + y).Top = Carre1(Carre + y).Top + 480
Carre1(Carre + y).Left = 2160

Daniel
0
elbertondu62 Messages postés 42 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 22 janvier 2006
2 avril 2005 à 23:08
oki jessaye et je vous dit quoi

wazaaa breton
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 avril 2005 à 23:17
j'ai pas pu tester parce que j'ai pas tous les éléments, alors j'ai crée 4 PictureBox que j'ai appelé Carré1... les Carrés descendent bien mais arrivé à la fin, il se passe des choses bizarres.
j'ai changé aussi la place du j = j + 1 et rajouté On Error resume Next avant le Load Carré1() pour éviter l'erreur si objet déjà créé.

Do While (j < 14)
' j de 0 à 13
j = j + 1
Loop

Daniel
0
elbertondu62 Messages postés 42 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 22 janvier 2006
2 avril 2005 à 23:48
en effet je n'est plus l'erreur objet deja crée avec On error.... c'est deja un bon point.

Apres les chose bizare lol vienne enfet que la nouvelle picture se
charge bien ms les pieces sont construite a une vitesse
15000000000000000000000000000000 km/h mdr.

Et On error resume next ser koi exactement ?


wazaaa breton
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 avril 2005 à 23:57
en effet il y a beaucoup trop de PictureBox construites, bonjour la mémoire !!!
entre parenthèses les Images ça prend moins de mémoire.
faudrait peut être reprendre des anciennes qui servent plus mais comment ?
peut-être avec une table qui serait à 0 si plus utilisé.
le On error resume next c'est une solution de facilité, a utilisé en cas de nécessité ou pour la mise au point, ça permet d'ignorer l'erreur et de passer à l'instruction suivante.

Daniel
0
elbertondu62 Messages postés 42 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 22 janvier 2006
3 avril 2005 à 09:54
ou alors créer 4 picturebox de nom differents de refaires les figures.
Sa marche mais les conditions de fou qui a c affreux.... sa multipli
par 4.
c'est pour sa que j'ai essayer de faire un groupe.

je vous remercie bcp pour l'aide et les renseignements qui m'ont
fait avancé. je vous tient au courant des que j'ai fini et.
wazaaa breton
0
elbertondu62 Messages postés 42 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 22 janvier 2006
3 avril 2005 à 11:19
je viens de faire tilt lol cvré ke image on peut la charger sans pb
alors ? imaginons que je mette dans le dossier de mon projet un carre.

Comment dois je faire pour charger cette image ?

wazaaa breton
0
elbertondu62 Messages postés 42 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 22 janvier 2006
6 avril 2005 à 19:45
Bonjour je vous remercie pour votre aide j'ai reussi a faire marcher
les nouvelles pieces sans pb jai trouver pourquoi sa merdouiller.

Il fallait que j'incremente mes variable ac carre+1 carre +2 carre +3 et op sa marche :d

Merci bcp

wazaaa breton
0
Rejoignez-nous