VB6 & Control Array

Résolu
Airel35 Messages postés 16 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 13 février 2009 - 18 juin 2008 à 22:51
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 - 19 juin 2008 à 01:10
Bonjour,


Voilà, comme c'est dit dans le titre j'ai un léger problème avec
VB6... enfin, ce n'est pas vraiment un problème mais une lacune de ma
part.


En fait je viens de découvrir les tableaux de contrôle car j'ai un Form où il y à des centaine de picture box.


Donc y'a un moment où VB6 m'a chi** dans les pattes en me disant que je dépassais le nombre maximum... à ma grande surprise.


J'ai donc chercher comment faire, et je suis tomber sur les tableaux de contrôle.


Ca marche très bien MAIS :


J'ai 20 lignes de picture box et chaque ligne comporte 22 picture box.


Pour se repérer chaque picture porte porte le nom suivant :


image <n° de ligne> (N° image)


Exemple : Pour l'image 4 de la ligne 3 :


image3(4)


Et je veux que lorsque mon form se charge, toutes ces picture box charge la même image.


Si je n'avais eu qu'une seule ligne c'était ultra simple, je faisait :


For nb = 1 to 22


------ Let me.image1(nb).picture = 'image a charger'

Next nb


Mais je voudrais imbriquer 2 boucle For pour faire 20 fois les 22, une sorte de :


For nb1 = 1 to 20

          For nb2 = 1 to 22

                    Let me.image.nb1(nb2).picture = 'image a charger'

          Next nb2

Next nb1


Comment puis-je faire ?


Merci d'avance pour votre aide.

5 réponses

Airel35 Messages postés 16 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 13 février 2009
18 juin 2008 à 23:20
Nan ben j'ai rien dit je viens de trouver... ça fait 2heures que je tente des trucs, et là j'ai une idée... j'me dit "c'est pas ça quand même, c'est trop simple." et bingo ça marche.

J'ai pas l'air d'un con du coup.

Si ça peut aider (mais bon maintenant que je vois la solution, j'me demande qui à part moi n'y arriverai pas... ) :

For nb1 = 1 To 20
    For nb2 = 0 To 22
        Let ligne = "image" & nb1
        Let Me.Controls(ligne)(nb2).Picture = LoadPicture(Dossier & Fichier)
    Next nb2
Next nb1

Voilà, désolé.
Si un modérateur passe dans le coin, qu'il supprime ce sujet inutile.
3
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
18 juin 2008 à 23:37
Bonjour,
Je ne crois pas qu'il est possible de sélectionner un contrôle d'après une variable pour le nom
Mais il est possible de mettre 440 contrôles avec des index de 1 à 440
et lorsque tu veux sélectionner un ligne tu commence a (Ligne x 22)
A+
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
18 juin 2008 à 23:52
Beh non, faut pas effacer parce que c'était pas évident de trouver et ca fonctionne impec.
Ca peu toujours servir.
A+
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
19 juin 2008 à 01:05
Salut,
ça marche dans ton cas peut être, mais pas toujours vrai !
Si j' ai un Label3(5), ça bloquera au niveau de
Let Me.Controls(ligne)(nb2).Picture = LoadPicture(Dossier & Fichier)
C' est pourquoi il faudra ajouter un test sur le type du control.
If TypeOf  Me.Controls(ligne)(nb2) Is Image Then
        Let ligne = "image" & nb1
        Let Me.Controls(ligne)(nb2).Picture = LoadPicture(Dossier & Fichier)
End If

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0

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

Posez votre question
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
19 juin 2008 à 01:10
Ah oui, désloé !
 Let ligne = "image" & nb1

le nom du control est dans ligne.
J' ai confondu avec l' index dans la collection Controls de la feuille.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
Rejoignez-nous