如何实现:按钮的点击后出现一个popmenu(50分)

  • 主题发起人 主题发起人 cnnoah
  • 开始时间 开始时间
C

cnnoah

Unregistered / Unconfirmed
GUEST, unregistred user!
想实现一个按钮点击后出现一个popmenu,但不是右键点击弹出的popmenu?
 
可以在on key down 中模拟右键按下

xxxx.click(nil)
 
在OnClick中:
p: TPoint;
GetCursorPos(p);
popupmenu1.popup(p.x, p.y);
 
//Panel3是SpeedButton4的容器,PopupMenu3是要弹出的菜单
//效果是按按钮后在按钮的下方弹出菜单
procedure Tfm_ProjectTree.SpeedButton4Click(Sender: TObject);
var
P: TPoint;
begin
P := Panel3.ClientToScreen(Point(SpeedButton4.Left,SpeedButton4.Top+SpeedButton4.Height));
PopupMenu3.Popup(P.X-1, P.Y);
end;
 
当然得放置一个popupmenu了,设置好菜单项!
然后在你希望的那个位置的控件的OnMouseDown事件中
写下:
var pt:tpoint;
begin
getcursorpos( pt);
popupmenu.popup(pt.x,pt.y);
end;
 这样就可以了!
 
用xbutton控件
 
象各位说的,应该没有错,灵活一点嘛,呵呵
 
各位想得太复杂了吧,这个问题 很简单的嘛!
不要用popmenu,而是用TMainmenu,如
e在菜单顼里放上几个菜单顼,特别要有子菜单项,如N2,下有几个子菜单项,
在BUTTON的MenuItem属性中指向N2就行了,
是不是要改一下Button的Style你自己看看吧,记不清了。
这样可以的!

 
添加一个popmenu
双击这个popmenu,依次加入菜单项,双击各个菜单项, 就可以加入代码了,在原来的
按钮事件代码中加入:
var
p:tpoint;
begin
getcursorpos( p);
popupmenu.popup(pt.x,pt.y);
end;
完成
 
我说的那个看了一下,好像是Toolbar里的BUTTON才有那个属性
 
多人接受答案了。
 
多人接受答案了,UP,什么意思啊?
 
后退
顶部