Changer le style d'un bouton dynamiquement

Résolu
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005 - 18 janv. 2005 à 11:18
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005 - 18 janv. 2005 à 12:51
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

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 janv. 2005 à 12:16
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
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 janv. 2005 à 11:51
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
0
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005
18 janv. 2005 à 12:02
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
0
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005
18 janv. 2005 à 12:29
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
0

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

Posez votre question
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005
18 janv. 2005 à 12:39
Merci! ca marche enfin !

c'est dur le vb -_-

vive le java lol
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
18 janv. 2005 à 12:42
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
0
cs_HZ Messages postés 21 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 20 janvier 2005
18 janv. 2005 à 12:51
merci
0