popupmenu & button(50分)

  • 主题发起人 主题发起人 blackbutterfly
  • 开始时间 开始时间
B

blackbutterfly

Unregistered / Unconfirmed
GUEST, unregistred user!
这样点击鼠标左键,激发popupmenu?
坐标怎样控制才有效呢?
使popupmenu出现在点击右键出现的位置呢?
 
在onMouseDown事件中

if (button=mbright) then
begin
...
x:=aa.clienttoscreen().x;
...
end;
 
用popupmenu1.Popup(x,y:integer)可以指定popupmenu的位置,在要激发popupmenu的事件中
写这个过程就行了。
 
to 磊:能不能具体点:)谢谢:)

to pldu:我问的就是鼠标定位怎么定才精确?
 
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
a:=X;
b:=Y;

end;
procedure TForm1.FormClick(Sender: TObject);
begin
//????GetCursorPos(ThePoint);谁告诉我tpoint是怎么回事??

popupMenu2.Popup(a,b);///好像不行呢??位置怎么回事,不过我想搞清楚后就很好用
//搞清楚通知我呀
end;


 
哈,再用窗体的坐标换算一下就可以很准确啦
 

procedure TForma.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (button = mbRight) then
popupMenu1.Popup(x+forma.ClientOrigin.x,y+forma.ClientOrigin.y);
end;
 
var p:TPoint;

GetCursorPos(p);//取得当前鼠标单击位置
popupMenu1.popup(p.x,p.y);//在当前点弹出菜单

 
//ntstar,要换算一下的,看我的,从你那里知道啦,p.x,p.y,:)

begin
GetCursorPos(ThePoint);
ScreenToClient(thepoint);
popupMenu2.Popup(thepoint.x,thepoint.y);
end;


//分点分吧:)
 
我是想在(button.left,button.heignt+button.top)
这个位置出现popumenu
怎么办?
 
procedure TForm1.SpeedButton1Click(Sender: TObject);
var thepoint : Tpoint;
begin
thepoint := speedbutton1.ClientOrigin;
ScreenToClient(thepoint);
popupMenu1.Popup(thepoint.x,thepoint.y);
end;
 

Similar threads

S
回复
0
查看
816
SUNSTONE的Delphi笔记
S
S
回复
0
查看
735
SUNSTONE的Delphi笔记
S
D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
后退
顶部