我动态生成了全部菜单,所有菜单都定义onshowclick函数为处理函数,那我想知道是那个菜单项触发他的啊!怎么办?

解决方案 »

  1.   

    if sender is tbutton then
      case (sender as tbutton).tag of
    1:
    2:...
    你要预先指定好Tag属性,这个很有用的/ by LY http://www.99898.com/www/lysoft
      

  2.   

    .tag怎么搞?请列出整套例子,但详细说明!
      

  3.   

    在动态生成的时候给生成的菜单项的tag属性负值
      

  4.   

    Sender是触发该事件对象的指针
    (Sender as TMenuItem)将其强制转化为TMenuItem
    用个数组保存所有动态生成的TMenuItem,如:
    var MyMenu:array of TMenuItem;根据计算得到所需要动态生成的TMenuItem的数量n,然后用SetLength(MyMenu,n)为动态数组分配内存空间!然后动态生成MyMenu[i]:=TMenuItem.Create(Self);判断就用if (Sender as TMenuItem)=MyMenu[0]这样的形式进行判断!
      

  5.   

    当然如果只是按顺序生成的一级菜单,可以直接用数组记录相关信息和
    (Sender as TMenuItem).MenuIndex配合实现!