sfmaniaque
Messages postés15Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention22 octobre 2006
-
22 oct. 2006 à 21:17
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
23 oct. 2006 à 04:06
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
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 22 oct. 2006 à 22:10
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
sfmaniaque
Messages postés15Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention22 octobre 2006 22 oct. 2006 à 22:13
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....
Vous n’avez pas trouvé la réponse que vous recherchez ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 22 oct. 2006 à 22:44
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...
B0mbJacK
Messages postés141Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention25 octobre 20061 22 oct. 2006 à 22:49
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!!!
sfmaniaque
Messages postés15Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention22 octobre 2006 22 oct. 2006 à 23:11
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 :)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 23 oct. 2006 à 02:18
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
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 23 oct. 2006 à 04:06
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.