Pb tool button enfoncé en tbsDropDown

[Résolu]
Signaler
Messages postés
20
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
5 mai 2006
-
Messages postés
20
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
5 mai 2006
-
Bonjour à tous, j'ai un problème avec un TToolButton avec le style tbsDropDown.
Je voudrais qu'il reste enfoncé quand on clique dessus. Pas de bol, ça remonte après avoir cliquer dessus. Pour être bien sur : une forme nue + une toolbar + le toolbutton en dropdown : qd on clique dessus, je voudrai qu'il reste enfoncé.
Je pense qu'il faut traiter la propriété Down à la main avec qqchose comme :

procedure TForm1.ToolButton1Click(Sender: TObject);
begin
ToolButton1.Down := not ToolButton1.Down
end;

En debug, on voit bien Down à true et le bouton enfoncé, mais il remonte après ... C'est quoi le truc ?

Merci

22 réponses

Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Ah oui, je comprends.

Hélas, JulioDelphi a raison :

"Les boutons d'outils ne peuvent rester Down que si Style a la valeur tbsCheck."

Je ne vois pas de solution. Désolé...
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
Absolument non. Dans le cas où c'est tbCheck, le PopupMenu est celui du clic droit. En mode tbDropDown, c'est celui du clic gauche (alors automatique).
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
peut etre en modifiant ce composant, ou en en trouvant un, je viens de regarder sur torry.net : sans succes

"Donc merci pour JulioDelphi, grandvizir et japee ..." > on a le droit à 3 reponses acceptées alors :D

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
ToolButton1.Down := not ToolButton1.Down


Horreur !! C'est le bouton qui le fait. En écrivant ça, l'effet s'en va.
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
hello,

en lisant l'aide (F1) je lis :
"Tool buttons can remain Down only if Style is tbsCheck"
traduction :
"Les Tool Boutons ne peuvent rester "Down" que si le style est "tbsCheck"

donc avec un tbsDropDown tu ne peux pas.
j'ai essayé de bidouiller mais pas moyen avec un tbsDropDown

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Salut, Indelphini.

Il te faut affecter un TPopupMenu à la propriété DropdownMenu du TToolButton.
Tu peux le faire avec l'inspecteur d'objets.
Le TPopupMenu doit comporter au moins un TMenuItem pour visualiser le résultat.
Rien d'autre à faire.

Bonne prog' :-p
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
euh sert a quoi ton menu ? j'ai pas tres bien saisi, montre un peu ce que tu mets dans ce menu, procedure etc

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Tu as un exemple dans l'interface de Delphi soi-même, JulioDelphi.

A côté du bouton Ouvrir, en haut à gauche.

Un magnifique menu déroulant contenant les derniers .dpr ou .pas ouverts apparaît... 8-)

Bonne prog' :-p
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
heu ouè ok mais c'est ça qu'il veut faire ?
je pensais qu'il voulait faire comme un TSpeedButton, qd on clik dessus, il reste enfoncé, qd on reclik et se remets normal.

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Je pense que c'est ce que veut faire Indelphini.

Sinon, je vois pas...

Il va nous le dire, en n'oubliant pas de cliquer sur "Réponse acceptée" si ça lui convient.

Sinon, je boude... :dissapprove)
Messages postés
20
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
5 mai 2006

J'ai un peu trop simplifié ma description ...
en fait sur ma toolbar j'ai 4 boutons en tbsCheck et 0 ou 1 est actif. Ca correspond à 4 modes d'édition sur une planche de jeu de go : un coup noir-un coup blanc, que des noirs, que des blancs et le dernier bouton pour des marques diverses (croix, ronds, lettres, ...). J'ai associé un popup menu sur ce dernier bouton pour sélectionner le type de marque et ça marche très bien. Mais par souci d'ergonomie je préférerai avoir un dropdown menu (avec une fleche visible) en gardant le meme fonctionnement : 0 ou 1 bouton enfoncé parmi 4.

Ca n'interessera que les joueurs de go, mais mon soft est freeware et chargeable en www.geocities.com/wwwdrago avec quelques recopies d'écran.

Merci à tous ...
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
J'ai raison ? ha bah voila :D j'avais compris :)

>>>>>>>>>> N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;) MERCIIIIIIIIIII

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
Il faut banir l'évènement qui change le Down, tout en mettant une propriété tbCheck...

tbCheck active le downage, le bouton gère tout seul le changement d'état du down. Pas besoin de l'aider en ce sens, c'est vain (cf toute première réponse).

Si maintenant tu veux associer le PopupMenu à ton bouton, alors il faut gérer un évènement OnClick par ton ToolButton. En utilisant judicieusement les fonctions ClientToScreen et ScreenToClient (dérivés d'un TControl), tu peux détecter les coordonnées XY du coin supérieur gauche de ton bouton. Tu ajoutes la largeur à X, la hauteur à Y. Et enfin, tu écrits MonPopupMenu.Popup(X,Y).

Le popup se pop sous ton bouton qui se gère seul du Down. Voilà donc une sympathique réponse. :)
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
en remplissant la propriete : PopopMenu du ToolButton, le popupmenu ne serait-il pas par hasard dejé géré ? sans devoir galérer à coder l'emplacement de déploiement du dit menu ??

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
haaa oui pour le tbChack tout a fait, on a pas d'autre choix que de calculer ces coodonnées! bien vu :)

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
Messages postés
20
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
5 mai 2006

Bon ben je pensais pas déclencher autant de réactions ! Pour résumer :

- "Les boutons d'outils ne peuvent rester Down que si Style a la valeur tbsCheck."
- Il faut banir l'évènement qui change le Down.
- Je peux ouvrir un popup menu avec le clique gauche en le gérant à la main.

Donc merci pour JulioDelphi, grandvizir et japee ...

Un regret qd meme ... c'est bien un tbsDropDown qui va le mieux avec mon besoin, ... et ce qui me tracasse c'est qu'on voit partout des boutons d'outil dropdown qui restent enfoncés. Alors possible sous Windows, pas possible sous Delphi ?
Messages postés
20
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
5 mai 2006

>> on a le droit à 3 reponses acceptées alors :D

C'est fait. Si jamais vous avez une autre idée, n'hésitez pas à réouvrir le thread.
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
Peut-il y avoir précision sur le dernier paragraphe ?

Un regret qd meme ... c'est bien un tbsDropDown qui va le mieux avec mon besoin, ... et ce qui me tracasse c'est qu'on voit partout des boutons d'outil dropdown qui restent enfoncés. Alors possible sous Windows, pas possible sous Delphi ?
Messages postés
20
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
5 mai 2006

Bon ok, j'exagère en disant partout. Dans word office Xp, il y a le bouton surligneur qui fait ça. On clique dessus, il reste enfoncé et on peut cliquer su la flèche à coté pour choisir la couleur.
Si c'est pas un bouton dropdown ça y ressemble, et ça peut rester enfoncé, d'où ma question.
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
Il me semblait bien que c'était dans un truc dans ce genre...