Une popup ki apparait qd on clique sur 1 bouton

cs_ak47 Messages postés 24 Date d'inscription dimanche 28 avril 2002 Statut Membre Dernière intervention 11 novembre 2002 - 27 août 2002 à 22:29
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 29 août 2002 à 13:45
salut,
voila, j'ai cree un bouton et j'aimerai bien faire apparaitre une popup juste en dessous lorsqu'on clique dessus. Mais je n'arrive pas a faire que le popup se positionne au bon endroit lorsque on clique sur le bouton.
j'utilise la fonction "Monbouton.OnClick" et apres je met :
mapopup.popup(X,Y);
et X et Y doivent etre les coordonnes, mais je n'arrive pas a faire qu'ils soient justes (ils doivent etre en pixels, et je ne connais la position du bouton que par rapport a ma form)
Merce d'avance
@ +
ak47

6 réponses

cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
27 août 2002 à 23:07
Bah... Si tu récupères les coordonnées de ta souris par rapport à ton bouton dans un "OnMouseMove" avec une variable TPoint "Pos", tu peux ensuite faire ce que tu dis... maPopup.Popup(Pos.X, Pos.Y)

J'ai déjà utilisé, et ça marche sans problèmes !!

Si tu veux la position relative à l'écran, utilise Mouse.CursorPos.X et Mouse.CursorPos.Y...

Bonne prog' !
Bestiol.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
27 août 2002 à 23:10
Si tu veux gérer la position quand tu cliques sur le bouton et afficher le popmenu en bas à droite du bouton :

procedure TForm1.Button1Click(Sender: TObject);
var
P : TPoint;
begin
//afficher le menu contextuel en bas à droite du bouton
with Button1 do
begin
P.X := Left + Width;
P.Y := Top + Height;
end;
//Conversion de coordonnées sur la fiche
//en coordonnées sur l'écran
P:= ClientToScreen(P);
//Appel du menu contextuel à l'endroit voulu
PopUpMenu1.popup(P.x, P.y);
end;

May Delphi be with you.
Delphi advanced
0
cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
27 août 2002 à 23:13
Merci DelphiProg... Je ne connaissais pas ClientToScreen(P);

Bonne continuation !
Bestiol.
0
cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
27 août 2002 à 23:14
Merci DelphiProg... Je ne connaissais pas ClientToScreen(P);

Bonne continuation !
Bestiol.
0

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

Posez votre question
cs_ak47 Messages postés 24 Date d'inscription dimanche 28 avril 2002 Statut Membre Dernière intervention 11 novembre 2002
28 août 2002 à 13:36
Merci beaucoup a vous deux.
@ +
ak47
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
29 août 2002 à 13:45
J'allais oublier : depuis Delphi5, les composants disposent d'une méthode OnContextPopUpMenu que tu peux utiliser facilement.

May Delphi be with you.
Delphi advanced
0
Rejoignez-nous