我有个PopupMenu,所有动态创建的TmxButton的PopupMenu都赋给了它..
但我现在问题是,在其中一个Button点右键出现菜单后.我怎么知道是哪个呢???比如
我动态创建了TmxButton1,TmxButton2,TmxButton3,三个TmxButton的PopopMenu都是同一个..
我现在为PopopMenu里某个菜单写事件时候,比如就SHOW一下所点TmxButton的Name,可关键我怎么知道程序运行时候是点哪个TmxButton触发的呢??
但我现在问题是,在其中一个Button点右键出现菜单后.我怎么知道是哪个呢???比如
我动态创建了TmxButton1,TmxButton2,TmxButton3,三个TmxButton的PopopMenu都是同一个..
我现在为PopopMenu里某个菜单写事件时候,比如就SHOW一下所点TmxButton的Name,可关键我怎么知道程序运行时候是点哪个TmxButton触发的呢??
解决方案 »
- 在WM_COMMAND要怎么分别处理按钮?
- 求串口通信例子
- SQL 问题在线等,,,急.............立即结帐
- 哭死啊!谁能指点我一下,我把分全给他。
- 简单问题,困扰我,ENTER键回车
- 怎么导入一个已有的数据库
- why the image flashes when use lineto to draw a line under win2000?
- 登录+主窗体+MDI窗体:登录→主窗体→MDI窗体,打开MDI窗体时报错,但如果去掉登录窗体(主窗体→MDI窗体)就能够正常打开MDI窗体
- 关于窗体调用和关闭的问题
- 我是林林,谢谢你
- 兄弟们,有没Delphi.Net的电子入门书啊
- 为何老是说找不到DXClass.dcu
Showmessage((Sender as TmxButton).Caption)
设置Button1/2/3的Tag分别为1/2/3;在这个事件里传给PopupMenu.tag ,以后在事件里判断PopupMenu的Tag值就可以了。procedure TFMenus.mxOutlookBarProContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean);
Var
Pos: TPoint;
iIndex: Integer;
Begin
Pos := ClientToScreen( MOUSEPOS );
If Sender Is TmxButton Then
Begin
iIndex:=(Sender as TmxButton).Tag;
myPopupMenu.Tag:=iIndex;
myPopupMenu.Popup( Pos.X, Pos.Y );
Handled := True;
End;
end;
myPopupMenu.PopupComponent就是弹出菜单的控件
如果要当作TmxButton来用,那就Showmessage(TmxButton(myPopupMenu.PopupComponent).Name);
begin
caption:=clientdataset1.fieldbyname('name').AsString;
PopupMenu:=PopupMenu1;
OnClick:=n1click;
Cursor:=crHandPoint;
end;