问题如下:把数据库里的数据用来动态生成菜单项,但是我不知道怎样判断我单击了哪个菜单项,所有的单击事件都指向了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;小弟技穷请各位大虾帮忙!
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;小弟技穷请各位大虾帮忙!
解决方案 »
- delphi 三层结构的一个问题
- Tfun=function:integer????
- 我用ToolBar做MDI程序的主菜单,为何在子窗口菜单不能加到主窗口的ToolBar菜单里呢? 我以做了,GroupIndex设置呢.为什么还不对?
- 菜鸟问题,简单的查询,谢谢
- 如何实现DBGrid全部被选中,急!!!
- 表格显示问题,高手请进!!急急!!!!!!!!!!!
- 50分!寻找如下Flatstyle,SncSoft,everbutton控件~
- DELPHI 6。0编译过程的问题?
- 我是D新手,请问学D重点在哪???
- 在DELPHI里用quick report打印表格的时候为什么打印页之间会嵌入空页?
- 求助!
- 关于ACCESS的问题!!!急!!!谢谢了!!!
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);
///////////////////////
popupmenu1.Items.Items[I_SPMC-1].Tag:= I_SPMC-1;
//////////////////////////
newitem.OnClick := N1Click;
dm_dbxp.qry_spmc.Next;
end;
PopupMenu1.Popup(x,y);
end;procedure TDBXP_RKD.N1Click(Sender: TObject);
begin
///////////////////
showmessage(inttostr(popupmenu1.Items.Items[popupmenu1.Items.IndexOf(newitem)].Tag));
////////////////////
popupmenu1.Items.Clear;
end;
動態建立的菜單.tag :=i;
Onclick中:
var
i: integer;
s: string;
begin
i :=(sender as TMenuitem).tag;
s :=(sender as TMenuitem).caption;
showmessage(inttostr(i) + s);
end;
//沒delphi,記得大概是這樣