Delphi知识中心
www.delphi.ee
提供Delphi技术知识
与Delphi程序员共同进步


在线服务QQ:99923144 随时恭候您的光临
首页 基础知识 WIN系统 组件使用 组件开发 数据库 ACTIVEX 多媒体技术 网络技术 关于
文章类别:组件使用    你尚未登陆,会员功能无法使用,请从 网站首页 登陆。
  不使用第三方控件实现XP风格POP菜单  
 
Delphi中不使用第三方控件实现XP风格POP菜单

穆龙原创 ,绝对不是抄袭的,辛辛苦苦才发现的,转载请留下我的大名,谢谢。

1、在 Form1 上放一个 ActionManager1
2、再 ActionManager1 里面加入你的 Action1....ActionX
3、把 ActionManager1 里的 Action 分组
4、在 Form1 上放一个 ActionMainMenuBar1
5、把 ActionManager1 里的 Action 分组拖方到 ActionMainMenuBar1
6、在 Form1 上放一个 PopupMenu1 /* 也可以不放 ,但是如果是 Memo1 控件建议你放
一个空的PopupMenu1 用来屏蔽系统默认的 Popup 菜单 */
7、在 Form1 加入鼠标右键事件

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Popup: TCustomActionPopupMenu;
P: TPoint;
begin
if mbRight = Button then
begin
Popup := TCustomActionPopupMenu.Create(Self);
try
Popup.ActionClient := ActionManager1.FindItemByCaption('编辑(&E)'); { 分组名称 }
P := ClientToScreen(Point(0, 0)); { Form 坐标到屏幕坐标的映射 }
Popup.Popup(P.X + X, P.Y + Y + 32); { 这坐标,你可以自己调整 }
finally
Popup.Free;
end;
end;
end;
8、小心 1...8 中的错别字

 

在线服务QQ:99923144 Delphi程序员QQ群(139442)
Delphi知识中心 www.delphi.ee 最专业的Delphi技术资料网站