VB6 - Ajout dynamique de commandbutton

Le
François Ranwez
Je suis en train de dévelloper une borne domotique qui permet de piloter une
installation électrique domotique.

Dans le cadre de cette application, j'aimerais ajouter dynamiquement (lors
de l'exécution de l'application) des commandbutton, le nombre étant
variable, allant de 10 à 100, voir 200 boutons.

J'ai le code suivant qui fonctionne bien:

Private Sub Form_Load()
Me.Controls.Add "vb.commandbutton", "cmd"
Me!cmd.Caption = "Bouton"
Me!cmd.Left = 100
Me!cmd.Top = 100
Me!cmd.Visible = True
End Sub

Mais, j'aimerais bien créer mes boutons dans un même groupe de contrôles,
c'est-à-dire, cmd(1), cmd(2), cmd(3), , cmd(i)

Comment faie ? Je tourne, je retourne toutes les informations disponibles
sur Internet et dans l'aide VB, je ne trouve pas la solution ?

Si quelqu'un pouvait me faire avancer sur ce problème, ce serait fantastique
!

Un grand merci d'avance

François Ranwez
francois.ranwez@skynet.be
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Noex
Le #19084681
François Ranwez a exposé le 09/04/2009 :
Je suis en train de dévelloper une borne domotique qui permet de piloter une
installation électrique domotique.

Dans le cadre de cette application, j'aimerais ajouter dynamiquement (lors de
l'exécution de l'application) des commandbutton, le nombre étant variable,
allant de 10 à 100, voir 200 boutons.

J'ai le code suivant qui fonctionne bien:

Private Sub Form_Load()
Me.Controls.Add "vb.commandbutton", "cmd"
Me!cmd.Caption = "Bouton"
Me!cmd.Left = 100
Me!cmd.Top = 100
Me!cmd.Visible = True
End Sub

Mais, j'aimerais bien créer mes boutons dans un même groupe de contrôles,
c'est-à-dire, cmd(1), cmd(2), cmd(3), ..., cmd(i)

Comment faie ? Je tourne, je retourne toutes les informations disponibles sur
Internet et dans l'aide VB, je ne trouve pas la solution ?

Si quelqu'un pouvait me faire avancer sur ce problème, ce serait fantastique
!

Un grand merci d'avance




Sur la form, en faisant un copié collé d'un bouton, VB6 te propose si
tu veux créer un groupe. Tu dis oui et le tour est joué. Et jean-marc
va être content car je suis persuadé qu'il y un exemple dans la FAQ

http://faq.vb.free.fr/
Noex
Le #19084671
Noex a présenté l'énoncé suivant :

Sur la form, en faisant un copié collé d'un bouton, VB6 te propose si tu veux
créer un groupe. Tu dis oui et le tour est joué. Et jean-marc va être content
car je suis persuadé qu'il y un exemple dans la FAQ

http://faq.vb.free.fr/



http://faq.vb.free.fr/index.php?questionˆ

Comment ajouter dynamiquement des contrôles sur un form ?

Voici une première solution employant comme méthode les contrôles
indexés. Pour que cet exemple fonctionne vous devrez préalablement
ajouter un contrôle d'index 0 à la feuille.

Dim i As Integer

For i = 1 To 5
Load Command1(i)
Command1(i).Top = Command1(i - 1).Top + Command1(i).Height
Command1(i).Visible = True
Next
Vincent Guichard
Le #19085701
François Ranwez a écrit :
Me!cmd.Caption = "Bouton"



Pas vraiment de réponse à ta question, mais je m'interrogeais sur la
syntaxe Me! . Je n'ai rien trouvé concernant cette syntaxe dans l'aide
vb6. C'est un raccourcit qui viens des versions précédentes de VB et
tombé en désuétude? Est-ce une spécificité de l'objet Form ou a pplicable
à toutes les collections? (la syntaxe "usuelle" pour accéder à un
contrôle par son nom étant de mémoire Me.Controls("cmd") ).

Vincent Guichard
Jacques93
Le #19086621
Bonjour François Ranwez, Noex, Vincent Guichard,
Vincent Guichard a écrit :
François Ranwez a écrit :
Me!cmd.Caption = "Bouton"



Pas vraiment de réponse à ta question, mais je m'interrogeais sur la
syntaxe Me! . Je n'ai rien trouvé concernant cette syntaxe dans l'aide
vb6. C'est un raccourcit qui viens des versions précédentes de VB et
tombé en désuétude? Est-ce une spécificité de l'objet Form ou applicable
à toutes les collections? (la syntaxe "usuelle" pour accéder à un
contrôle par son nom étant de mémoire Me.Controls("cmd") ).




De mémoire, c'était, et c'est peut être toujours, une syntaxe utilisée
sous Ms-Acces, :


Si c'est le cas, les groupes de contrôles ne sont pas supportés (comme
dans les différent VBA, Access, Excel, Word, PP ...)

--

Cordialement,

Jacques.
Fran
Le #19088201
On 4月9日, 午後2:31, Vincent Guichard
François Ranwez a écrit :
>        Me!cmd.Caption = "Bouton"

Pas vraiment de réponse à ta question, mais je m'interrogeais s ur la
syntaxe Me! . Je n'ai rien trouvé concernant cette syntaxe dans l'ai de
vb6. C'est un raccourcit qui viens des versions précédentes de VB et
tombé en désuétude?



Hello,

l'opérateur "bang" est applicable à n'importe quelle collection ( cf.
http://faq.vb.free.fr/index.php?question1#bang ; par contre, je
n'arrive plus à mettre la main sur le lien MSDN qui documente cet
opérateur). Il se fait que Controls est la propriété par d éfaut d'un
objet Form, et qu'il s'agit d'une collection. C'est pour cette raison
qu'on peut l'utiliser avec Me.

Pour ce qui est de tomber en désuettude, cet opérateur est encore
présent dans VB9 et s'est apparement refait une jeunesse dans Linq:
http://oakleafblog.blogspot.com/2007/05/linq-to-datasets-rehabilitates-vb-b ang.html

François Picalausa
Publicité
Poster une réponse
Anonyme