感知鼠標移入移出組件
雖然從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;