onix64
Messages postés23Date d'inscriptionvendredi 7 août 2009StatutMembreDernière intervention 7 août 2011
-
20 avril 2010 à 15:59
onix64
Messages postés23Date d'inscriptionvendredi 7 août 2009StatutMembreDernière intervention 7 août 2011
-
20 avril 2010 à 18:34
Bonjour,
Je bataille avec un tout petit problème de rien du tout mais qui pour moi débutant m'empêche d'avancer.
J'ai bien trouvé des exemples de codes avec des boucles sur le forum mais certains ne marchent pas et je ne comprends pas.
Et je voudrais faire une boucle du style ci-dessous que je mets dans le Form Load :
Dim i as integer
For i = 1 to 15
Label(i).visible = true
Next i
End sub
J'ai le message d'erreur "Sub or function not defined" en mettant le mot "Label" en surbrillance. J'ai essayé plein de variante avec l'option index mais rien n'y fait je dois louper qqchose.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 avril 2010 à 16:11
Salut
Oui, Label25 n'est pas la même chose que Label1(25)
Dans le premier cas, c'est un objet simple
Dans le deuxième cas, c'est un objet indexé (voir sa propriété Index)
Tu n'as plus qu'à changer le nom de chacun de tes Labels en un nom unique, monLabel, et de mettre leur Index à la valeur souhaitée.
Attention : les index commencent à 0, pas à 1
Et là, ton programme fonctionnera :
For i = 0 to 14
monLabel(i).Visible = true
Next i
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 20 avril 2010 à 16:17
donnes un seul et même nom à tous tes labels
VB6 te les indexera dans un groupe ils deviendront alors
label(1)....... label(15) et ta boucle fonctionnera
onix64
Messages postés23Date d'inscriptionvendredi 7 août 2009StatutMembreDernière intervention 7 août 2011 20 avril 2010 à 17:03
Salut
Merci pour ta réponse ! c'est bon ça marche.
J'avais compris l'histoire de l'option index et j'avais déjà essayé mais je pensais que ça commençait à 1 et non à 0 c'est là que je me suis trompé .
Idem pour le nom de mon Label le fait de l'appeler 'Label' me mets le bordel dans mon programme.
Une dernière question sur l'histoire de renommer des noms avec des i ou j mais qui concerne un nom de fichier :
If Label30.Caption = "Albi" Then
img1.Picture = LoadPicture("H:\Arnaud\Albi.gif")
ElseIf Label30.Caption = "Bayonne" Then
img1.Picture = LoadPicture("H:\Arnaud\Bayonne.gif")
ElseIf Label30.Caption = "Biarritz" Then
img1.Picture = LoadPicture("H:\Arnaud\Biarritz.gif"
Else: img1.Picture = LoadPicture("H:\Arnaud\Toulouse.gif")
End If
J'aimerai faire un truc du genre :
Label30.Caption = j
img1.Picture = LoadPicture("H:\Arnaud" & j & ".gif")
ou sinon :
img1.Picture = LoadPicture("H:\Arnaud" & Label30.Caption & ".gif")
Qu'en penses tu ? la deuxième solution m'intéresserait plus. Le truc c'est de pouvoir charger l'image qui a le même nom que celui que l'on rentre dans le Caption du Label30. Merci encore