Repetition d'une fonction private sub en VB

Repetition d'une fonction private sub en VB - VB/VBA/VBS - Programmation

Marsh Posté le 25-04-2006 à 11:03:45    

Salut !
Je dois répéter la fonction ci dessous 3840 fois car j'ai 3840 objets différents... y a t il un moyen de faire une sorte de boucle ou reussir à choper le nom de l'objet sur lequel l'utilisateur clique autre. En fait je cherche un moyen de ne pas répéter 3840 fois la même fonction car ça prend beaucoup de ligne et niveau lisibilité c'est moyen je trouve. (ImageX => X varie de 1 a 3840)
 
Private Sub ImageX_Click()
 If ImageX.BackColor = &H0& Then
  ImageX.BackColor = &HFFFFFF
  ImageX.tag = 0
  a = MAJ_vu()
 Else
  ImageX.BackColor = &H0&
  ImageX.tag = 1
  a = MAJ_vu()
 End If
End Sub
 
Merci d'avance


Message édité par Eagles Eyes le 25-04-2006 à 12:47:55
Reply

Marsh Posté le 25-04-2006 à 11:03:45   

Reply

Marsh Posté le 25-04-2006 à 15:36:33    

Ta descrition n'est pas très précise mais tu tu créer une fonction  
Image_Click avec le nom de l'objet en argument et appeler cette fonction a chaque click

Reply

Marsh Posté le 26-04-2006 à 08:53:50    

Pour préciser un petit peu:
Je créer un programme avec 3840 objets "Image" ou "PictureBox". Les 3840 objets réagissent de la même façon si on leur clique dessus. Mon problème est que je dois répéter pour chacun des objets. Je recherche donc une solution pour éviter cette répétition assez lourde.
 
Pour passez le nom en paramètre:
Si je dois passer le nom en paramètre je dois définir une fonction pour chaque objet nan ? Comment récuperer le nom de l'objet et lexploiter ?!

Reply

Marsh Posté le 26-04-2006 à 09:03:58    

Ton formulaire doit avoir une collection accessible via .Controls() à laquelle tu peux passer le nom de ton image ou picturebox en paramètre :

Me.Controls("Image1" ).BackColor = &HFFFFFF


Ta procédure ImageX_Click() est un évènement lié au control ImageX. Il n'est pas possible de s'en affranchir si tu veux gérer cet évènement. Tu dois donc écrire une fonction qui passera le nom de ton control en paramètre et qui sera appelée dans chacun des évènements.
Je crois qu'il est techniquement possible de créer tes controls à l'exécution et d'associer du code à leurs évènements, mais je ne suis pas sûr que tu y gagnerais en temps de programmation, maintenance et lisibilité de code.


Message édité par tegu le 26-04-2006 à 09:04:26
Reply

Marsh Posté le 26-04-2006 à 15:26:00    

Ok je vais tester merci pour les réponses !!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed