请教各位前辈,关于弹出菜单。(50分)

  • 主题发起人 主题发起人 q09876
  • 开始时间 开始时间
Q

q09876

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样实现按下一个按钮后,在按钮下面弹出一个菜单?
能讲讲吗,有源代码更好,谢谢。
 
放一个POPUPMENU,
一个BUTTON,设置POPUPMENU属性.
 
p1是POPUPMENU
procedure TForm1.Button1Click(Sender: TObject);
var
Pos: TPoint;
begin

Pos :=Button1.ClientToScreen(Point(0,0));
p1.Popup(Pos.x, Pos.y);
end;

 
哦,我刚试了一下,那样是点右键时弹出来,我是想点左键时弹出来。
我试着在button ,click事件里写这两句代码:
//popupmenu1.Popup(5,5);
//popupmenu1.Popup(button1.Top,button1.Left);
这样按左键可以弹出来了,但位置都不对,怎样让它在按钮的下方弹出来,并且屏蔽它的右键弹出?
 
zw84611,
好,我先试一下。
 
啊,这样的话,点左键弹出时把按钮覆盖了,怎样在按钮下面弹出来?
并且屏蔽右键弹出(麻烦就算了)。
 
1.p1.Popup(Pos.x, Pos.y + 20);
//自己微调一下位置。
2.去掉BUTTON 的 POPUPMENU 属性
 
procedure TMDIMainForm.Button1MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
//弹出菜单
begin
if button=mbleft then
pmwindow.Popup(button1.top+button1.heigth,button1.left);
end;
 
多人接受答案了。
 
后退
顶部