一个POPUMENU菜单,其中ITEM的内容是动态附与的,不是事先设置好的,请问这样要响应相关双击事件,并再取点击打ITEM的内容是怎样的处理的。
解决方案 »
- fastreport如何显示两个TfrxCrossView?
- 判断字符串问题
- 求成熟餐饮管理软件,要求要在广州
- 关于WebSoap方式,数据库图象清除问题
- 如何用panel实现MDI模式
- 将登录窗口做了主窗口,为什么最小化到桌面左下角,而不是任务栏?
- 如何做出这种漂亮的界面?
- "access violation in module vcl60.bpl"的错误,请帮忙解决!!!!
- procedure WMNID(var msg:TMessage); message WM_NID;编译不能通过 求助 的回复
- 向各位拜个晚年!多多积分!多多灌水!
- 怎样把sqlserver和程序一起打包呢?
- 怎样新建一个空的DBGrid?
比如Item.OnClick = XXX;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus;type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure PopupMenuItemClick(Sender: TObject);
end;var
Form1: TForm1;implementation{$R *.dfm}
var
iTag : Integer;procedure TForm1.FormCreate(Sender: TObject);
begin
PopupMenu := PopupMenu1;
iTag := 1;
end;procedure TForm1.PopupMenuItemClick(Sender: TObject);
begin
ShowMessage(Format('Tag: %d, Caption: %s', [TMenuItem(Sender).Tag, TMenuItem(Sender).Caption]));
end;procedure TForm1.Button1Click(Sender: TObject);
var
AItem : TMenuItem;
begin
//创建动态PopupMenu的Item
AItem := TMenuItem.Create(PopupMenu1);
AItem.Caption := '动态PopupMenu ' + IntToStr(iTag);
AItem.Tag := iTag;
AItem.OnClick := PopupMenuItemClick;
PopupMenu1.Items.Add(AItem);
inc(iTag);
end;end.
procedure TForm1.HandleItemClick(Sender: tobject);
begin
showmessage('点击了菜单项');
end;procedure TForm1.CreateMenu;
begin
//....创建菜单项代码
MenuItem.OnClick := HandleItemClick;
end;
private
procedure myclick(Sender: TObject);
var
Form1: TForm1;
NewItem:TmenuItem;implementation{$R *.dfm}
procedure TForm1.myclick(Sender: TObject);
var
i:integer;
begin
showmessage(newitem.Caption);//这样的话只是返回第一项值‘5678’,不管点‘1234’也好都是返回‘5678’ {for i:=0 to Newitem.Count-1 do
begin
if newitem.Items[i]. then//这里不知怎样的判断,用了click属性不行 check属性也不行,不知是那个,又没有
select属性
begin
showmessage(newitem.Items[i].Caption);
end;
end;}
end;procedure TForm1.Button1Click(Sender: TObject);
begin
popupmenu1.Items.Clear; NewItem:=TmenuItem.Create(self);
NewItem.Caption:='1234';
NewItem.OnClick:=myclick;
Popupmenu1.Items.Insert(0,NewItem);
NewItem:=TmenuItem.Create(self);
NewItem.Caption:='3456';
NewItem.OnClick:=Myclick;
Popupmenu1.Items.Insert(0,NewItem); NewItem:=TmenuItem.Create(self);
NewItem.Caption:='5678';
NewItem.OnClick:=Myclick;
Popupmenu1.Items.Insert(0,NewItem); popupmenu1.Popup(button1.ClientOrigin.X,button1.ClientOrigin.Y);
end;
end.
procedure TForm1.myclick(Sender: TObject);
var
i:integer;
begin
根据
TmenuItem(Sender).Tag
TmenuItem(Sender).Caption
等进行判断
end;