Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VB6 - Ajout dynamique de commandbutton

5 réponses
Avatar
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

5 réponses

Avatar
Noex
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/
Avatar
Noex
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
Avatar
Vincent Guichard
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
Avatar
Jacques93
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, :

<http://officesystemaccess.seneque.net/vba/point.htm&gt;

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.
Avatar
Fran
On 4月9日, 午後2:31, Vincent Guichard <vg.bleuc wrote:
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