我相用左键得到快键菜单POPUpmenu1的:
比如我有一个BUTTON组件,写了如下代码:
procedure TForm1.Button1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = Mbleft then
popupmenu1.Popup(x,y);
end;
菜单是显示出来,但是他显示的位置去在屏幕的左上角,这样的话,
1.X,Y座标应是相对于组件来说,但是显示的位置确是相对屏幕来说,请问下,我怎么才能将菜单显示位置相对于当前组件的位置来显示?
2.或者显示MOUSE的当前位置?
比如我有一个BUTTON组件,写了如下代码:
procedure TForm1.Button1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = Mbleft then
popupmenu1.Popup(x,y);
end;
菜单是显示出来,但是他显示的位置去在屏幕的左上角,这样的话,
1.X,Y座标应是相对于组件来说,但是显示的位置确是相对屏幕来说,请问下,我怎么才能将菜单显示位置相对于当前组件的位置来显示?
2.或者显示MOUSE的当前位置?
解决方案 »
- 新手求指教,不胜感激。
- 通过ADSL 访问远程的MSSQL DB ,一般要做些什么设置或是条件,第三方软件也可?
- 大家都用什么版本的delphi?
- 数据显示,一个很奇怪的问题
- 请问如何使用idudp组件传输图象。
- 请教怎样在应用程序服务器端监控客户端的行为!请大家给个好的思路!
- 问几个关于delphi 的函数问题。
- 怎样将ADOQuery进行数据库操作时报错信息换成自己的,或者彻底消除?
- TListstring问题
- 买了DELPHI 6 D版,说能告诉我,它的序列号和密匙是多少??
- 请问delphi中的tstringlist的add()和append()的区别啊??
- unit,class,调用
2、Mouse.CursorPos.x & Mouse.CursorPos.y
button1不是有一个(PopupMenu)属性吗 ,设置这个属性为新建PopupMenu的就行了。
得到当前鼠标在屏幕上的位置:GetCursorPos
ScreenToClient是把屏幕坐标转化成相对当前窗体的坐标