两个小问题! ( 积分: 100 )

  • 主题发起人 主题发起人 guxlei4
  • 开始时间 开始时间
G

guxlei4

Unregistered / Unconfirmed
GUEST, unregistred user!
1。当鼠标移到控件上出发onmouseover事件。离开是控件时触发什么事件?
2。控件上点击右键可以打开popupmenu菜单。我想点左键打开一个菜单应该怎么做?
 
1。当鼠标移到控件上出发onmouseover事件。离开是控件时触发什么事件?
2。控件上点击右键可以打开popupmenu菜单。我想点左键打开一个菜单应该怎么做?
 
1、当鼠标移到控件上出发onmouseEnter事件。离开是控件时触发onmouseover事件
2、
procedure TForm1.Button1Click(Sender: TObject);
begin
PopupMenu1.Popup(mouse.CursorPos.x, mouse.CursorPos.Y);
end;
 
我刚刚才发现,onmouse 只有三个事件
onmousedown
onmousemove
onmouseup


1。当鼠标移到控件上出发onmouseEnter事件。离开是控件时触发onmouseover事件
这个事件从何而来?
 
TLabel还有OnMouseLeave事件
 
不好意思,记错了。
可以在onmousemove事件里根据位置判断吧
 
昏。根据位置判断啊?有没有现成的事件可以用啊?
 
1.不同控件的拥有的鼠标事件是不一样的.
2.可以自定义一个消息,重载WndProc来处理.
 
如:
const
MM_MyMsg = WM_USER + 100;

procedure WndProc(var Msg: TMessage); override;
end;

procedure TfrmMain.WndProc(var Msg: TMessage);
var
MousePos: TPoint;
begin
if Msg.Msg = MM_MyMsg then
begin
case Msg.LParam of
WM_LBUTTONDOWN: //鼠标左键按下
if GetCursorPos(MousePos) then
begin
PopupMenu1.PopupComponent := frmMain;
PopupMenu1.Popup(MousePos.x, MousePos.y);
end;
...........................//Do something
end;
inherited WndProc(Msg);
end;
 
后退
顶部