如题。

解决方案 »

  1.   

    PopupMenu1.TrackButton:= tbLeftButton;
      

  2.   

    获取光标位置,在此处弹出右键菜单.
    getcursorpos(mousept); //获取光标位置 
    popupmenu1.popup(mousept.x, mousept.y); //在光标位置弹出菜单 
      

  3.   

    procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      var mousept:TPoint;
    begin
      getcursorpos(mousept);
      popupmenu1.popup(mousept.x, mousept.y);
    end;
      

  4.   

    搞定了,方法笨了点。不知道大家有没有看到过速达软件的那种菜单,在下就是想要那种效果。PopMnuPrint.Popup(self.Left+(Sender as TBitBtn).Left+4,self.Top+(Sender as TBitBtn).Top+2*(Sender as TBitBtn).Height-2);欢迎继续讨论,希望找到一个更好的方法。
      

  5.   

    我个人认为: 把toolbar的popupmenu设为popupmenu1,然后把toolbutton 的menuitem设为对应的菜单项即可。
      

  6.   

    不是菜单上的SpeedButton那种按钮,而是TButton或者TBitBtn那种。
    还有没有更好的方法。
      

  7.   

    procedure TForm_main.ImageButton_xinjianClick(Sender: TObject);
    var
       p:TPoint;
    begin
        GetCursorPos(p);
        PopupMenu_xinjian.Popup(p.x,p.y);
    end;
      

  8.   

    PopMnuPrint.Popup(self.Left+(Sender as TBitBtn).Left+4,self.Top+(Sender as TBitBtn).Top+2*(Sender as TBitBtn).Height-2);楼主的这个方法就不错了,不用继续找了。
      

  9.   

    用一个PopupMenu组件不就行了
    在按钮上的PopupMenu属性只定一下,然后在按钮的ONClick事件下写入代码:
    PopupMenu.popup(x,y);
    x,y为坐标,还可以指定显示位置不多好