Créer des contrôles en éxécution

Résolu
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008 - 8 févr. 2006 à 15:21
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008 - 24 févr. 2006 à 13:41
Voilà je voudrais savoir si il est possible en VB6 de créer des contrôles (comme une msgbox ou une listbox) en éxécution.
Je m'explique : par exemple on à déjà un Command button dans l'appli et je veux faire en sorte que lorsque l'on clique dessus : il me créé par exemple 5 autres bouttons à côté. Le code serait un peu à la manière du générateur de form que j'ai déposé sur ce site (source N° 30625)
Si quelqu'un peut me dire comment faire ou si c'est carrément impossible à réaliser.

[mailto:M@xwells M@xwells] M@ni@c

5 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 févr. 2006 à 15:37
Salut,

Regarde si ce qui suit peut t aider

Ajoute sur une feuille un command button et met sa propriete index a 0.

Ensuite dans le code:

Dim i As Integer

For i = 1 To 5
Load Command1(i)
Command1(i).Caption = "Bouton " & i
Command1(i).Top = Command1(0).Top + i * Command1(0).Height
Command1(i).Visible = True
Next

Voila
@+
Julien
3
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
8 févr. 2006 à 18:05
Bonjour,

Pour compléter la réponse de econs, ce
code te permet de gérer les évenement Click, tu as aussi cette
façon de créer tes boutons dynamiques.Ce code est plus long, c'est un
choix.



Option Explicit

Dim WithEvents obj1 As CommandButton

Dim WithEvents obj2 As CommandButton

Dim WithEvents obj3 As CommandButton



Private Sub Command1_Click()

On Error Resume Next

Set obj1 = Controls.Add("VB.CommandButton", "button")

obj1.Visible = True

obj1.Top = 100

obj1.Left = 100

obj1.Caption = "Ouvrir"



Set obj2 = Controls.Add("VB.CommandButton", "button1")

obj2.Visible = True

obj2.Top = 600

obj2.Left = 100

obj2.Caption = "Valider"



Set obj3 = Controls.Add("VB.CommandButton", "button2")

obj3.Visible = True

obj3.Top = 1100

obj3.Left = 100

obj3.Caption = "Quitter"

End Sub



Private Sub obj1_Click()

MsgBox "Bonjour"

End Sub



Private Sub obj2_Click()

MsgBox "Ceci est un exemple !"

End Sub



Private Sub obj3_Click()

MsgBox "Au revoir"

Unload Me

End Sub



jpleroisse
3
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
8 févr. 2006 à 17:42
Et quand tu as ces nouveaux boutons, il faut leur associer des évenements Click (sinon, il ne servent à rien tes boutons).

Pour les boutons créés par jrivet, l'évenement Click se définit ainsi :







Private Sub Command1_Click(Index As Integer)

Select Case Index

Case 1 :

MsgBox "Faire l'action associée au bouton 1"

Case 2 :

MsgBox "Faire l'action associée au bouton 2"

Case 3,4,5 :

MsgBox "Ne rien faire"

End Select

End Sub

Manu
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
8 févr. 2006 à 17:46
Note que si tu n'as que deux boutons qui doivent "apparaître", tu peux
les créer à l'avance, mais mettre leur propriété Visible à False.

Quand tu cliques sur ton bouton visible, tu mets les propriétés Visible
de tes boutons invisibles à True, et hop, ils apparaissent.



Dès que le nombre de bouton augmente, et si ces boutons ont des actions similaires, la méthode décrite conjointement par jrivet et moi-même est la plus appropriée.

Manu
0

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

Posez votre question
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008
24 févr. 2006 à 13:41
Merci à tous pour vos réponses. Pour que vous sachiez, c'est
l'utilisateur qui détermine le nombres de bouttons qu'il souhaite
avoir. Je vais tester les différentes solutions que vous me proposer.



Merci à tous.

[mailto:M@xwells M@xwells] M@ni@c



Ce site est génial. J'ai presque toujours eu une ou plusieurs réponses aux questions que j'ai posées.



Merci CodesSources.COM
0