感知鼠标移入移出组件
虽然从D7开始,给许多组件增加了OnEnter与OnExit事件,但对于大多数组件,要感知鼠标移入移出组件仍是一件不容易的事情。下面的方法就是用于解决这个问题。
(对一般组件有效,对Form、MainMenu等无效)
private
{ Private declarations }
//定义两个过程:
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
procedure TForm1.CMMouseEnter(var Msg: TMessage);
var
anObject : TObject;
begin
anObject := TObject(Msg.lParam);
//Button1为要感知的组件,可以换为其它组件
if anobject = Button1 then
edit1.Text :='Mouse Enter';
end;
procedure TForm1.CMMouseLeave(var Msg: TMessage);
var
anObject : TObject;
begin
anObject := TObject(Msg.lParam);
if anobject = Button1 then
edit1.Text := 'Mouse Leave';
end;