Bonjour à tous,
ma question est simple, je voudrais qu'a l'appel du menu par la commande "popup" le menu se positionne sur la ligne voulu pour moi la 3eme ligne(Tmenuitem)
Bonjour à tous,
ma question est simple, je voudrais qu'a l'appel du menu par la commande "popup" le menu se positionne sur la ligne voulu pour moi la 3eme ligne(Tmenuitem)
Bonjour,
pour ouvrir un popup sous le curseur :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var pt: TPoint; begin GetCursorPos(pt); PopMenu1.Popup(pt.x, pt.y ); end;
Charly
Mon site : http://lapaille.byethost24.com/index.htm
Bonjour,
@Charly910 je ne suis pas sur que chekkal demande cela, j'ai plutôt l'impression qu'il demande à ce que le 3°Item de son menu popup soit l'item "par défaut"
@chekkal il faudrait confirmer ou "affiner" ta demande
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
bonjour à tous et merci pour vos réponses. Je confirme sergio. Mon but c'est qu'a l'appel du menu celui ce positionne sur un item précis en l’occurrence le 3eme pour moi.
Je ne crois pas que cela soit possible, il n'existe pas de propriété ItemIndex. Le seul truc possible est de mettre l'option du menu étant de mettre celle-ci par défaut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PopupMenu1.Items[2].Default:=True;
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Bonjour,
effectivement c'est compliqué d'y arriver.
Comme le dit SergioMaster rien est prévu pour cela.
J'ai néanmoins réussit à la faire par un bricolage pas très élégant !!!
Dans l'évènement OnPopupCordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure TForm1.PopupMenu1Popup(Sender: TObject); begin // on simule 3 fois un Key Down keybd_event(VK_DOWN , 0, 0, 0); keybd_event(VK_DOWN , 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_DOWN , 0, 0, 0); keybd_event(VK_DOWN , 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_DOWN , 0, 0, 0); keybd_event(VK_DOWN , 0, KEYEVENTF_KEYUP, 0); end;
@+
Oui, je n'avais pas compris ...
mais dans ce cas s'il s'agit bien d'ouvrir un popup tu peux faire :
Pas terrible car on ne connait pas la hauteur du popup pour calculer la position de l'tem 3 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure TF_Princ.SpeedButton2Click(Sender: TObject); Var pt : TPoint; pt1 : TPoint ; begin GetCursorPos(pt); pt1.x := pt.X + 20 ; pt1.Y := pt.Y + 60 ; SetCursorPos(pt1.x, pt1.y); PopupMenu1.Popup(pt.x, pt.y); end;
De plus, dès que l'on déplace le curseur, l'item sélectionné change.
Et puis, il y a des cas ou le Popup peut s'ouvrir à droite !
Mais je ne vois rien d'autre
A+
Charly
La solution de Cirec est bien meilleure
(sauf si le curseur doit se positionner sur l'item 3 ?)
Mon site : http://lapaille.byethost24.com/index.htm
Bonjour,
j'ai testé la premiére propostion et ce ne marche pas
par contre la 2eme solution ça marche, merci beaucoup
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager