Groupe de controle et passage en parametre

cs_arc59 Messages postés 32 Date d'inscription mardi 15 janvier 2002 Statut Membre Dernière intervention 24 mars 2011 - 22 janv. 2004 à 10:12
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 - 22 janv. 2004 à 19:03
Bonjour,

j'ai un groupe de control PictureBox composé de 4 picturebox pic(0), ..., pic(3).

Je dois traiter les differents PictureBox du groupe dans une fonction.

public sub test(p as Variant)

et mon appel est le suivant : test p

J'aimerai savoir le type d'objet que je dois passer à la place de Variant ?

Le type picturebox ne fonctionne pas et le type control non plus. Enfin, il me renvoi une erreur 13 quand je met l'un de ces 2 types

Merci pour vos reponses.

5 réponses

plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
22 janv. 2004 à 11:08
tu dois passer l'index de ton picturebox et faire un truc du style

public sub test (index as integer)
pic(index).top ...
....
end sub

' modifier ton picturebox 0
test 0
0
cs_arc59 Messages postés 32 Date d'inscription mardi 15 janvier 2002 Statut Membre Dernière intervention 24 mars 2011
22 janv. 2004 à 12:55
Je me suis mal fait comprendre d'apres la reponse.

Je souhaite que ma fonction modifie tous les controles du groupe.

Et je veux passer le groupe de controle en parametre de la fonction, et pas juste une picture box.
Il faut que ce soit la totalité du groupe et j'aimerai savoir le type d'un groupe de controle picturebox par exemple.
0
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
22 janv. 2004 à 14:41
Pour info c'est ce qui est préconisé dans MSDN. La question a déjà été posée sur le site et à ma connaissance c'est la seule solution

Après tu peux faire une boucle sur tous tes éléments de ton groupe de controle

for i= 0 to pic.UBound
test i
next i
0
cs_arc59 Messages postés 32 Date d'inscription mardi 15 janvier 2002 Statut Membre Dernière intervention 24 mars 2011
22 janv. 2004 à 18:20
Ca ne repond pas à ma question.

Je veux passer en argument d'une fonction le groupe de controle et d'ailleurs j'y arrive mais en indiquant le type Variant.

Je souhaite juste savoir ce qu'il faut mettre à la place de variant.

Donc, reexplication :
J'ai 4 picturebox dont les noms sont : pic(0), pic(1), pic(2), pic(3).

J'ai une fonction declaré ainsi :
public sub test(pictest as variant)
dim i as integer

for i = 0 to 3
pictest(i).cls
next
end sub

et j'appelle la fonction comme ceci :
test(main.pic)

Je repete ma question : quel type faut il utiliser à la place de Variant ?
0

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

Posez votre question
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
22 janv. 2004 à 19:03
1. J'ai bien compris ce que tu veux faire

2. Tu ne peux pas passer en argument un groupe de controle
(sauf sous le type variant en effet qui soit dit en passant n'est pas un type au sens propre du terme...)

3. Pourquoi cela te gene de mettre variant, puisqu'il sert, en autre (même s'il ne sert pas qu'à ça) à mettre les types non gérés par VB ?

4. Remarque par ailleurs que ce que tu fais reviens à faire ce que je te conseillais, sauf que tu fais la boucle à l'intérieur de ta procédure test, au lieu de la faire à l'appel de celle-ci

Après tu fais ce que tu veux, moi, ce que je t'en dis c'est ce qui est conseillé par MSDN, la preuve par exemple quand tu crées un évènement click sur un groupe de contrôle il te met :

Private Sub Picture1_Click(Index As Integer)
...
End Sub
0
Rejoignez-nous