如何侦测鼠标离开控件的事件,如TLabel的OnMouseLeave我想写一个类似金山取词窗的东西,当鼠标离开控件的时候隐藏控件,想得到一个详细的回答,有100分。

解决方案 »

  1.   

    procedure TForm1.Label1MouseLeave(Sender: TObject);
    begin
        application.MessageBox('鼠标离开','提示',mb_ok);
    end;
      

  2.   

    那么你需要捕获鼠标操作 。
    TControl派生的控件都有个属性MouseCapture,你只要设置这个属性为True。那么无论你的鼠标移动哪里,你都能接收到它的移动的消息,当移出你的控件后,你可以隐藏你的控件,然后关闭它的MouseCapture属性。
      

  3.   

    楼上的兄弟,说的详细点啊!我用的TListBox就没有啊!
      

  4.   

    http://expert.csdn.net/Expert/topic/1456/1456771.xml?temp=.6863977顺便看看这个问题,,是有关的,,有了答案立即结贴
      

  5.   


      自己从TBUTTON派生一个BUTTON  在其MouseMove中进行  TrackMouseEven调用   响应WM_MOUSELEAVE消息进行处理即可.
      

  6.   

      我在网吧里面。  以TButton为例,大概步骤如下:   (1) 自定义组件,选择其基类为TBotton,名字随便,叫TButtonEx好了。    (2)响应WM_MOUSEMOVE消息。         tagTRACKMOUSEEVENT tme;
               
             //填充tme结构          TrackMouseEvent(tme);
         (3)为组件增加WM_MOUSELEAVE处理函数:                
            procedure OnMouseLeave(var msg:TMessage) message WM_MOUSELEAVE;         Ctrl+Shift+ C;     (4) 在OnMouseLeave中进行任何你想进行的处理。              有一段时间没搞过了,不知有没有写错,见笑见笑。     有什么问题,再发贴吧。              
      

  7.   

    唉,真是受不了,简单的方法不用,当你派生了TButton控件后,难道没有有MouseCapture属生吗?这是一个保护属性啊.倒也.