快速搭建网站后台,苏州品牌网站设计,关于服装的商务网站建设策划书,网站编程员工资Delphi XE7中目前还没有弹出菜单组件#xff0c;这个弹出菜单应用很普遍#xff0c;在JAVA开发的安卓程序中很简单就可以用上了#xff0c;应该说是一个标准控件。看了一些例子#xff0c;但是都不能满足我想在任意位置弹出菜单需求#xff0c;于是自己在网上找了一个例子… Delphi XE7中目前还没有弹出菜单组件这个弹出菜单应用很普遍在JAVA开发的安卓程序中很简单就可以用上了应该说是一个标准控件。看了一些例子但是都不能满足我想在任意位置弹出菜单需求于是自己在网上找了一个例子修改后实现了我的在任意位置弹出菜单需求全部代码如下 { 功能DelphiXE7里面实现的弹出菜单 ------------------------------------------------------------------------------ 说明实现在任意位置显示弹出菜单功能。 ------------------------------------------------------------------------------ 注意 1rcPopup为弹出菜单最外层的容器在正式使用时候visiable属性建议设置为false。 在设计菜单时候把这个属性改为true那样可以可视化设计菜单。 2main_old.pas为原作者写的代码对原作者辛苦工作表示感谢。 ------------------------------------------------------------------------------ 原作者不详从大富翁论坛下载到此代码 修改者孙玉良 QQ14667479 Emailsunylat163.com 修改时间2014/11/20 00:47 ------------------------------------------------------------------------------ 开发工具Delphi XE7 测试手机华为荣耀X1 } unit main; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Effects, FMX.Objects, FMX.StdCtrls, FMX.Filter.Effects, FMX.Ani; type TForm7 class(TForm) ToolBar1: TToolBar; sbDropDown: TSpeedButton; rcPopup: TRectangle; ShadowEffect1: TShadowEffect; lbHome: TLabel; imHome: TImage; FillRGBEffect1: TFillRGBEffect; imSeparator: TImage; Image1: TImage; lbOption2: TLabel; Image2: TImage; FillRGBEffect2: TFillRGBEffect; Image3: TImage; lbOption1: TLabel; Image4: TImage; FillRGBEffect3: TFillRGBEffect; lbOption3: TLabel; Image5: TImage; FillRGBEffect4: TFillRGBEffect; PopupAnimation: TFloatAnimation; procedure sbDropDownClick(Sender: TObject); private { Private declarations } public { Public declarations } // { // 功能 执行显示弹出菜单操作 // 参数 // menuX// 菜单显示位置的X值 // menuX// 菜单显示位置的Y值 // isShowMenu是否显示菜单 // } // procedure DoShowPopMenu(menuX, menuY: Single; var isShowMenu: boolean); procedure DoShowPopMenu(menuX, menuY: Single; var popMenu: TRectangle; var popAnimation: TFloatAnimation; var isShowMenu: boolean); end; var Form7: TForm7; isShowPopMenu: boolean; // 是否显示菜单 implementation {$R *.fmx} // 演示如何使用 procedure TForm7.sbDropDownClick(Sender: TObject); var menuX, menuY: Single; // 菜单显示位置的X和Y值 begin { 测试数据1 } // 测试默认菜单X值 menuX : 1; // 测试默认菜单Y值 menuY : ToolBar1.Height; { 测试数据2 } menuX : menuX 20; // 菜单显示位置的X值 menuY : menuY 20; // 菜单显示位置的Y值 // 执行显示弹出菜单操作 self.DoShowPopMenu(menuX, menuY, rcPopup, PopupAnimation, isShowPopMenu); end; // 执行显示弹出菜单操作 procedure TForm7.DoShowPopMenu(menuX, menuY: Single; var popMenu: TRectangle; var popAnimation: TFloatAnimation; var isShowMenu: boolean); begin // 如果要执行不显示菜单操作 if isShowMenu false then begin // 设置是否显示菜单布尔值为true,为了下次显示菜单判断用 isShowMenu : True; // 设置菜单显示位置X值 popMenu.Position.X : menuX; // 设置菜单显示位置Y值 popMenu.Position.Y : menuY; // 设置菜单可见 popMenu.Visible : True; { 暂时没弄清楚下面这两个参数含义只是通过测试知道这样设置达到预期效果了 } // 设置菜单打开动画起始位置 popAnimation.StartValue : popMenu.Position.Y; // 设置菜单打开动画结束位置 popAnimation.StopValue : popMenu.Position.Y; // 启动动画 popAnimation.Start; end else begin // 设置是否显示菜单布尔值为false,为了下次显示菜单判断用 isShowMenu : false; // 设置菜单显示位置X值 popMenu.Position.X : menuX; // 设置菜单显示位置Y值 popMenu.Position.Y : menuY; { 暂时没弄清楚下面这两个参数含义只是通过测试知道这样设置达到预期效果了 } // 设置菜单打开动画起始位置 popAnimation.StartValue : popMenu.Position.Y; // 设置菜单打开动画结束位置 popAnimation.StopValue : popMenu.Position.Y; // 启动动画 popAnimation.Start; // 设置菜单不可见 popMenu.Visible : false; end; end; end. 源代码下载http://dl5.csdn.net/fd.php?i878681887197295s1031a6c70ac5628e21f978f48da52987 转载于:https://www.cnblogs.com/sunylat/p/6217652.html