在KeyDown事件中加入PopupMenu.Popup(x, y);x, y通过 ClientToScreen转换即可!

解决方案 »

  1.   

    1、使用Toolbutton,指定toolbutton的dropdownmenu为你的popupmenu,sytle为tbsDropDown。
    2、放一个image,在里面放图片,在OnClick里写代码。
      

  2.   

    To  CoolSlob(我心迷茫) :
       ClientToScreen到底怎么转换啊,可以给个例子吗?To hzb(Explorer):不能用image,因为我需要它用action的属性
    另外还想问一个问题,就是怎么在一个整图上象做网页一样设热点连接,分别
    处理不同的过程!
      

  3.   

    1)我想用MainMenu不行的,因为MainMenu系统默认在在窗体标题栏下显示,所以还要用PopupMenu。以下是按Button弹出菜单的代码:
    var
      Btn:TButton;
      X,Y:integer;
      Pos:TPoint;
    begin
      Btn:=Sender as TButton;
      X:=Btn.Left;
      Y:=Btn.Top+Btn.Height;
      Pos:=Point(X,Y);
      Pos:=ClientToScreen(Pos);
      PopupMenu1.Popup(Pos.X ,Pos.Y);
    end;
    2)不太清楚
      

  4.   

    在mousedown 下
    var
      point:TPoint;
    begin
      point.X:=x;
      point.Y:=y;
      point:=Memo1.ClientToScreen(point) ;
      PopupMenu1.Popup(point.x,point.y);end;
      

  5.   

    Memo1.ClientToScreen//memo是你要弹出菜单的控件。
      

  6.   

    2:直接放一个Timage ,它也有Click 事件