Controles

Résolu
wiking_division Messages postés 6 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 6 décembre 2007 - 5 déc. 2007 à 10:17
TonySoft Messages postés 42 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 21 février 2008 - 6 déc. 2007 à 09:36
Bonjour,

J'ai 3 boutons sur lesquels j'exécute exactement le même code, peut on remplacer les 3 "Private Sub Command_click" par un seul comme suit :

AVANT
Private Sub Command1_click()
    ......
End Sub
Private Sub Command2_click()

    ......
End Sub
Private Sub Command3_click()
    ......
End Sub
APRES
Private Sub CommandX_click()
    ......
End Sub

Avec un exemple, ce serait sympa

D'avance merci
Cordialement

8 réponses

pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
5 déc. 2007 à 11:07
re salut
dans ce cas il faut que tu crée un groupe de controle.
tu renseignes la propriété Index du bouton...
ensuite tu n'auras qu'un code
sub Command_Click (index as integer)

end sub

ceci te permettra de générer également des controle de manières dynamiques et ils aurant un nouvel index...

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée
3
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
5 déc. 2007 à 11:11
exemple de chargement dynamique d'un controle
dim newindex as integer
Newindex = 2
load        Commande(NewIndex)
commande(newindex).caption = "New Bouton"
Commande(NewIndex).Top = Position par rapport au top du controle container (en général le form)
Commande(NewIndex).Left = Position par rapport au left du controle container (en général le form)

sub Commande_Click(Index as Integer)
   if index = 2 then
      msgbox "Vous venez de cliquer sur le bouton 2"
   endif
end sub

bon dev

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée
3
TonySoft Messages postés 42 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 21 février 2008
5 déc. 2007 à 11:16
Bonjour,
Avec Vb6 tu peut créer un tableau de controles, je m'explique ...
Tu crée un premier bouton, tu fais un copier/coller de ce bouton, la l'éditeur va te signalé que ce controle existe déjà, et il va te proposé de créer un tableau de controles, tu réponds 'oui'.

tu aura donc un tableau de bouton (  MesBoutons(index) )
qui contiendra tes 3 boutons ( MesBoutons(0), MesBoutons(1), MesBoutons(2) )

Donc ensuite tu n'as plus qu' a faire l'appel à la procédure souhaitée sur l'évènement 'Click' de ton tableau de bouton :
      
    Private Sub MesBoutons_click( index asinteger )
          call MaProcédure
    End Sub
 
voilà, la soluce est la...

@+          --TonySoft--
3
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
5 déc. 2007 à 10:24
salut
non, tu ne peux pas par contre tu peux mettre ton code commun dans une procédure et appeller la procédure dans tes command_click

sub MaProc()
...
lecode de la proc
..
end sub

Private Sub Command1_click()
    Maproc
End Sub
Private Sub Command2_click()
    MaProc
End Sub
Private Sub Command3_click()
    MaProc
End Sub
@]+

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée
0

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

Posez votre question
wiking_division Messages postés 6 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 6 décembre 2007
5 déc. 2007 à 10:51
Merci à toi pneau.

Ne peut on pas utiliser la notion objet Collection? Si oui, comment?
En VB, je crois que l'on peut gérer de façon dynamique les contrôles (ajout, suppression). Si par exemple on en crée un nouveau, il n'y a pas de code associé. Alors comment utilise t'on ce new contrôle?

Cordialement
0
TonySoft Messages postés 42 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 21 février 2008
5 déc. 2007 à 11:20
Oupss, désolé, je suis un peu en retard... je suis partie sur mon autre Pc (qui a vb6) pour verifier, j'ai saisi mon message, mais entre temps, pneau à été plus rapide que moi

@+      --TonySoft--
  
0
wiking_division Messages postés 6 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 6 décembre 2007
6 déc. 2007 à 09:26
Merci pour ces réponses, c'est exactement ce que je cherchais.....

Cordialement     
0
TonySoft Messages postés 42 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 21 février 2008
6 déc. 2007 à 09:36
Bonjour Wiking,

    Pense à valider une ou plusieurs des réponses, de manière à ce que le sujet apparaisse comme un problème résolu dans le forum.

     Les tableaux de controles sont très partique en visual basic 6, dommage que cela n'existe plus en vb.net 2005 ...

    Bonne journée

    A bientot sur le réseau CodeS SourceS.       --TonySoft--

0
Rejoignez-nous