VB6 & Control Array [Résolu]

Signaler
Messages postés
16
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
13 février 2009
-
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
-
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.
A voir également:

5 réponses

Messages postés
16
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
13 février 2009

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.
Messages postés
492
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2012
2
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+
Messages postés
492
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2012
2
Beh non, faut pas effacer parce que c'était pas évident de trouver et ca fonctionne impec.
Ca peu toujours servir.
A+
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
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.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
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.