Toolbar bouton enfonce ou pas

Signaler
Messages postés
15
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
22 octobre 2006
-
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
bonjour
j'aimerais avoir un bouton qui s'enfonce et se relache a chaque fois que je clique dessus...
mon code est le suivant dans l'evenement toolbar1_buttonclick

    If Toolbar1.Buttons(1).Value = 0 Then
    Toolbar1.Buttons(1).Value = 1
    Else
    Toolbar1.Buttons(1).Value = 0
    End If

ca me l'enfonce si je clicke dessus, mais il reste enfoncé si je reclicke a nouveau...
comment faire?
autre question, comment faire pour changer l'index de l'image du bouton quand il est enfoncé ?
merci de votre aide

15 réponses

Messages postés
141
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 octobre 2006

Lu,
voici le code à mettre

Toolbar1.Buttons(1).Value = CBool(Val(Toolbar1.Buttons(1).Value))
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Regarde dans les propriétés de ton bouton, donne lui le style tbrCheck

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonsoir,

Attention à la Toolbar1_Click. qui s' exécutera en boucle.


Toolbar1.Buttons(1).Value = 0 ou 1
est équivalente à Toolbar1_Click...

Solution: prévoir une boolean ( autoChange )
              qu' il faut initialiser à False.
 
  If autoChange = True  then Exit Sub
  If Toolbar1.Buttons(1).Value = tbrPressed Then
        autoChange = True
        Toolbar1.Buttons(1).Value = tbrUnpressed
        autoChange = False
  End If
Messages postés
15
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
22 octobre 2006

héhé bon ca a pas l'air si simple...le tbrcheck fait qu'il ne s'enfonce meme plus sauf au moment ou je clicke dessus, mais des que je lache le click ca revient en position initiale...
quand au code de bombjack, il me donne une erreur 380 : valeur de propriete non valide... le cbool n'a pas l'air d'etre aimé par mon vb6...

mais la ou je suis mort de rire c'est qu'en mettant le bouton sur cbrcheck dans les proprietes et en remplacant mon code par:

Toolbar1.Buttons(1).Value = Val(Toolbar1.Buttons(1).Value)
c'est a dire sans le cbool, ben ca marche!!
je comprends pas pourquoi, lol, a moins que le reglage tbrcheck change lui meme la valeur et que le zero renvoyé etait considere comme rien ou comme une chaine alors que l'attribut value attendait un entier... c'est la seule explication que je trouve!
sinon j'ai trouvé pour l'image, il suffit de faire toolbar1.buttons(1).image=2 ou un autre num qui correspond a l'index de l'image voulue dans le imagelist
enfin si quelqu'un pouvait me confirmer le semblant d'explication pourrie que j'ai cru entreapercevoir ca serait sympa....
Messages postés
15
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
22 octobre 2006

ca ne fait pas de boucle chez moi, ca marche fin bien!lol...
manque un end if a ton code tiens chaibat
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
ça m' étonne pas que tu bloques sur
des choses élémentaires cher Watson !
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
dis plutôt que c' est incomplet !


  if autoChange = True  then Exit Sub
  autoChange = True
  If Toolbar1.Buttons(1).Value = tbrPressed Then
     Toolbar1.Buttons(1).Value = tbrUnpressed
  Else      
     Toolbar1.Buttons(1).Value = tbrPressed
  End If
  autoChange = False


Ainsi
s' il est enfoncé, il se relache
s' il est relaché il s' enfonce...
Messages postés
141
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 octobre 2006

re,

chez moi cette ligne marche
Toolbar1.Buttons(1).Value = Cbool(Val(Toolbar1.Buttons(1).Value)  )
et sans le cbool, j'ai ton erreur 380
....va comprendre!!!

bonne programmation....++
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Hé les petits !
ça marche sans code !
il suffit de ne rien mettre dans TolBar1_Click
configurer le style à tbrCheck et ça marche tout seul.


BOmbjacK
Toolbar1.Buttons(1).Value = Cbool(Val(Toolbar1.Buttons(1).Value)  )
ne fais qu' affecter la même valeur!

pardon pour l' exemple; c' était un cas particulier tiré d' un exemple
personnel.
Messages postés
15
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
22 octobre 2006

ouh la je debute,lol, mille pardon si j'ai pu paraitre insolent dans ma reponse...alors, d'abord, merci pour les differentes idees et soluces!
cela dit, chez moi, tbrcheck tout seul sans aucun code marche effectivement tres bien!!!hihihi

faut que le metier rentre, hein! je fais des efforts, mais je suis nouveau...et j'avais fait que du php jusqu'ici...alors la transition est un peu hard ^^
sinon,chaibat, toi qui a l'air d'etre un connaisseur...sais tu comment on recupere le code source d'une frame dont on ne connait pas le nom?
dans un webbrowser bien sur...si d'autres ont des idees, je suis preneur :)
Messages postés
141
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 octobre 2006

Re,

c'est vrai qu'on doit se sentir grand quand on connait l'objet Toolbar1!
chapo.. m'sieur ....nous on est trop petit devant toi!
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
BombjacK,
j' espère qu' il n' y a pas de malentendu
de ma part concernant ton commentaire
ni de ta part concernant mon interjection ...
^^les petits ! , c' était par affection.
et sans prétention aucune.
je te connais si bien que je me permet
d' être familier...


désolé sfmaniaque
je n' ai pas de réponse à ta question


bon courage !


amicalement
Messages postés
141
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
25 octobre 2006

Re,
oui en effet , j'ai du mal comprendre désolé....et merci pour cette traduction. ...autant pour moi!

^^les petits ! , c' était par affection  <--- c'est gentil ;)

je te souhaite une bonne soirée et à bientot sur le forum chaibat
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonne nuit à toi aussi , p'tit !
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Re salut sfmaniaque
le fait de ne rien mettre dans ToolBar_ButtonClick
n' est valable que si tu utilises un toolbar avec juste
un bouton.
je reprend mon exemple au cas ou tu serais amené
un jour à gérer un toolbar avec plus d' un bouton
(comme un groupe d' options)
là tu seras obligé de mettre quelque chose dans ToolBar_Click
Supposons que tu as un ToolBar avec deux boutons
en position initiale , l' un serait enfoncé, l' autre relaché.
En cliquant sur le relaché, il s' enfonce, mais celui qui est
enfoncé doit se relacher (et inversement) et donc la position
du second doit être gérée par code...
pour celà tu dois tester:


Dim autoChange as Boolean (dans le module de ton form)


Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
   If autoChange=True Then Exit Sub
   autoChange = True
Select Case Button.Index
    Case 1
      If Toolbar1.Buttons(1).Value = tbrPressed Then
            ' button 1 enfoncé => relacher le button 2
           Toolbar1.Buttons(2).Value = tbrUnpressed
       Else
          'button 1 relaché => enfoncer le button 2
          Toolbar1.Buttons(2).Value = tbrPressed
      End If
   Case 2
       If Toolbar1.Buttons(2).Value = tbrPressed Then
            ' button 2 enfoncé => relacher le button 1
           Toolbar1.Buttons(1).Value = tbrUnpressed
       Else
          'button 2 relaché => enfoncer le button 1
          Toolbar1.Buttons(1).Value = tbrPressed
      End If
   End Select
     autoChange = False
End Sub


Notes bien que Toolbar1_ButtonClick se produit après
que le button ait pris sa nouvelle valeur ce qui veut dire
que tu ne testes pas sur ce qu' est été sa position mais sur
ce qui est devenue.


Voilà, c' est presque tout