Changer le style d'un bouton dynamiquement

Résolu
Signaler
Messages postés
21
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
20 janvier 2005
-
Messages postés
21
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
20 janvier 2005
-
Bonjour,
j'ai un probleme concernant mes boutons dynamiquement crees!
Je souhaite associer une image a un bouton, j'ai fait comme suit :

Set bouton = Controls.Add("VB.CommandButton", tabOrdi(i, 0))
Set bouton.Container = SSTab1

With bouton
.Visible = True
.Width = 800
.Top = 600
.Left = 200
.Height = 800
'.Style = 1
' .Picture = "d:\IUP\IHM\images\boitier.bmp"

voila le problem c'est que je ne peux pas changer ni le style, et que lors de l'execution si je ne met que .Picture = "d:\IUP\IHM\images\boitier.bmp"
il me fait une erreur : type incompatible.
je ne compren vraiment pas pourquoi!

aidez moi svp

7 réponses

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
non tu as le premier à déclarer celui qui a l'index à zéro et qui sert de référence pour les autres, ensuite tu utilises i comme index.

For i = 1 To nbordi - 1
Load Command1(i)
Y = i * 1100 + 100 + 500
Set Command1(i).Container = SStab1
Command1(i).Move 200, Y, 800, 800
Command1(i).Visible = True
Next

Daniel
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
La propriété Style est en read Only même pour un Bouton normal.
il ne reste plus qu'à changer de méthode, Command1 est un bouton avec Style Graphical et Index = 0

Load Command1(1)
Command1(1).Move 200, 600, 800, 800
Command1(1).Visible = True
Set Command1(1).Container = SStab1
Command1(1).Picture = LoadPicture(
"d:\IUP\IHM\images\boitier.bmp"
)

Daniel
Messages postés
21
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
20 janvier 2005

ah...
le probleme c'est que je crée des boutons dans une boucle for :

For i = 0 To nbordi - 1
If (i = 0) Then
Set bouton = Controls.Add("VB.CommandButton", tabOrdi(i, 0))
Set bouton.Container = SSTab1
With bouton
.Visible = True
.Width = 800
.Top = 600
.Left = 200
.Height = 800
' .Style = 1
' .Picture = "d:\IUP\IHM\images\boitier.bmp"
End With
Else
Set bouton = Controls.Add("VB.CommandButton", tabOrdi(i, 0))
Set bouton.Container = SSTab1
With bouton
.Visible = True
.Width = 800
.Top = i * 1100 + 100 + 500
.Left = 200
.Height = 800
' .Style = 1
End With
End If
Next

Donc il faudrait declarer tous les boutons avant ?
dans ce cas ce n'est pas possible pour mon projet
Messages postés
21
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
20 janvier 2005

Euh je comprend pas tout la.
Je suis vraiment debutant ...

Commande1(i) c'est quoi exactement? une fonction a faire?
je vois pas trop comment faire

c'est sympa de m'aider parceque la je nage vraiment j'avance pas :s
Messages postés
21
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
20 janvier 2005

Merci! ca marche enfin !

c'est dur le vb -_-

vive le java lol
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
c'est très bien le VB

Command1 c'est le nom du Bouton (Name)
Command1(0) celui que as créer avec Index = 0 et qui sert de référence
Command1 (i) pour accéder au Bouton d'index = i
Load Command(i) crée dynamiquement un bouton avec les mêmes propriétés que celui de référence

Daniel
Messages postés
21
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
20 janvier 2005

merci