快捷菜单

转载 2006年05月20日 17:38:00
问题如下:

把数据库里的数据用来动态生成菜单项,但是我不知道怎样判断我单击了哪个菜单项,所有的单击事件都指向了N1Click过程,因为我不知道会随数据库的数据产生多少菜单项。
procedure TDBXP_RKD.edt_spmcClick(Sender: TObject);
var
i_spmc,count_spmc:integer;
begin
with dm_dbxp.qry_spmc do begin
close;
sql.Clear;
sql.Add('select * from dbxp_sp');
open;
end;
count_spmc:=dm_dbxp.qry_spmc.RecordCount;
for i_spmc := 1 to count_spmc do
begin
NewItem := TMenuItem.Create(PopupMenu1);
NewItem.Caption := dm_dbxp.qry_spmc.FieldByName('spmc_no').AsString;
PopupMenu1.Items.Add( NewItem);
newitem.OnClick := N1Click;
dm_dbxp.qry_spmc.Next;
end;
PopupMenu1.Popup(x,y);
end;

procedure TDBXP_RKD.N1Click(Sender: TObject);
begin
怎样在这里判断我单击了哪个菜单项?
popupmenu1.Items.Clear;
end;

小弟技穷请各位大虾帮忙!
-----------------------------------------------------------------------------------------------------------------------------------
1.
太简单了,
procedure TDBXP_RKD.N1Click(Sender: TObject);
begin
//怎样在这里判断我单击了哪个菜单项?
with TMenuItem(Sender) do
begin
ShowMessage('你点击了"'+Caption+'"!');
end;
end;

2.
根据sender啊
procedure TDBXP_RKD.N1Click(Sender: TObject);
var
name :string;
begin
name :=TMenuItem(Sender).name;//菜单名称
popupmenu1.Items.Clear;
end;

3.
ype
TFunctionProc=function:boolean;

procedure TMainForm.SystemFunctionClick(Sender: TObject);//系统菜单事件
var
AHandle : THandle;
BaseInfoProc : TFunctionProc;
FunProc:string;
begin
if Sender is TMenuItem then
begin
FunProc:=(Sender as TMenuItem).KeyValue;
AHandle := GetModuleHandle(Nil);
if AHandle <> 0 then
begin
@BaseInfoProc := GetProcAddress(AHandle,PChar(FunProc));
if @BaseInfoProc <> nil then
begin
Update;
BaseInfoProc;
end;
end;
end;
end;

相关文章推荐

NSIS 附加快捷方式到开始菜单、桌面、任务栏

在安装完成后,自动创建快捷方式,并且能够附加到开始菜单或锁定到任务栏。 在网上找到的很多方法,看到使用C++实现的一个方法,代码如下: //任务栏:taskbarpin/taskbarun...

ubuntu右键添加打开终端的快捷菜单[转]

可能有很多人从Redhat等Linux发行版转到ubuntu上面来遇到的第一个最常用的问题就是,右键单击桌面,发现没有“打开终端”这个选项,下面介绍两种方法来在右键添加“打开终端”这个选项。 第一种...

uboot中的快捷菜单的制作说明

uboot中的快捷菜单的制作说明

【Android】巧用DialogFragment制作按钮弹出快捷菜单

早晨的时候想实现一个点击按钮弹出快捷菜单的功能,网上好多教程都过于陈旧,麻烦,无奈自己查了官网的API,找到了这个。下面来介绍官方的这种制作方法~~ 首先科普一下,快捷菜单。好多人搞不清楚快...

如何管理鼠标右键菜单里的快捷图标

鼠标的右键选单中有很多快捷命令,给日常操作带来了很大的方便。但是,系统不可能做到将所有的命令都集成到右键选单中,有时需要的命令根本就不存在,这就只能靠我们自己动手添加和删除进去了。下面就告诉大家几个添...

创建快捷方式 (并添加到快速启动栏 、桌面、开始菜单)

首先需要获取三个路径 :桌面路径 、快速启动栏路径、 开始->程序组路径 //得到当前桌面路径 BOOL GetDesktopPath(char *pszDesktopPath) { L...

在PopupWindow中应用 FlowLayout 实现快捷菜单

下图的弹出框就是需求的样式。里面的内容可以随意增删改。右边的角 要指向目标view。要实现这两个需求就需要 用常见的热门标签的流式布局 和 设定弹出框的xy。还有一个隐形的需求,弹出框的宽度,只知道最...
  • langzxz
  • langzxz
  • 2015年07月13日 15:14
  • 918

#AOS应用基础平台# 实现了在用户权限范围内自定义的快捷菜单的导航展示

#AOS开发平台# 实现了在用户权限范围内自定义的快捷菜单的导航展示。提供了2种快捷菜单布局风格(树状、平铺)的设置、提供了用户登录后的缺省导航卡片的设置(系统导航、快捷菜单、发现)。...

ArcGIS API for Silverlight开发中鼠标左键点击地图上的点弹出窗口及右键点击弹出快捷菜单的实现代码

1、首先在SL项目中添加一个抽象类ContextMenu.cs文件,代码如下: using System; using System.Net; using System.Windows; using ...

组合框、单选框、按钮、右键快捷菜单以及对话框的练习

/** * 用户信息输入 * @author 索广宇 *@date 2011/4/23 */ import java.awt.*; import java.awt.event.*;...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:快捷菜单
举报原因:
原因补充:

(最多只允许输入30个字)