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;
搞定了,方法笨了点。不知道大家有没有看到过速达软件的那种菜单,在下就是想要那种效果。PopMnuPrint.Popup(self.Left+(Sender as TBitBtn).Left+4,self.Top+(Sender as TBitBtn).Top+2*(Sender as TBitBtn).Height-2);欢迎继续讨论,希望找到一个更好的方法。
getcursorpos(mousept); //获取光标位置
popupmenu1.popup(mousept.x, mousept.y); //在光标位置弹出菜单
Shift: TShiftState; X, Y: Integer);
var mousept:TPoint;
begin
getcursorpos(mousept);
popupmenu1.popup(mousept.x, mousept.y);
end;
还有没有更好的方法。
var
p:TPoint;
begin
GetCursorPos(p);
PopupMenu_xinjian.Popup(p.x,p.y);
end;
在按钮上的PopupMenu属性只定一下,然后在按钮的ONClick事件下写入代码:
PopupMenu.popup(x,y);
x,y为坐标,还可以指定显示位置不多好