如何得到任意控件的MouseEnter和MouseLeave消息? 如何得到任何控件的MouseEnter和MouseLeave消息?要最方便简捷通用性强的方法!谢谢,请指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 前提条件,从TControl继承的可视控件!充分利用消息机制!TNewXXX =class(TXXX)private FOnMouseLeave: TNotifyEvent; FOnMouseEnter: TNotifyEvent; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; procedure CMMouseEnter(var Message: TMessage); message CM_MOUSENTER;public constructor Create(AOwner: TComponent);override;published property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;end;constructor TNewXXX.Create(AOwner: TComponent);begin inherited Create(AOwner);end;procedure TNewXXX.CMMouseLeave(var Message: TMessage);begin inherited; if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);end;procedure TNewXXX.CMMouseEnter(var Message: TMessage);begin inherited; if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);end; 就是要你自己做个CODE相同的控件。 只是你可以加上ENTER、LEAVE两个消息,如?!所说的一样 procedure TForm1.MouseWnd(var Message: TMessage);begin Case Message.Msg of wm_mouseMove : begin image1.Picture.LoadFromFile('C:\Program Files\Common Files\Borland Shared\Images\Backgrnd\calendar.bmp'); Image1.Refresh; end; Cm_mouseleave: image1.Picture.LoadFromFile('C:\Program Files\Common Files\Borland Shared\Images\Backgrnd\greenbar.bmp'); end; Image1.dispatch(Message);end;procedure TForm1.FormCreate(Sender: TObject);begin Image1.WindowProc := MouseWnd;end; 如图所示,fastreport提示错误 怎样向CS服务器(反恐精英)发送UDP十进制数据,然后服务器返回状态信息。 如何让delphi编译生成的exe文件包含多个图标啊? 唉,郁闷的枚举子窗口问题:EnumChildWindows, 冲突问题 日期类型转换成字符串类型(DateToStr)时候有时候出现文字(上午或者下午),怎么解决? 窗体设计的问题 如何在delphi中提高数据库访问的速度? 怎样建这样的存贮过程??再线等! 请问:Delphi有这样的控件吗? 提取exe的图标,并将这个图标设为speedbutton.glyph属性 资源占用率太高了,有什么办法解决?
private
FOnMouseLeave: TNotifyEvent;
FOnMouseEnter: TNotifyEvent;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSENTER;
public
constructor Create(AOwner: TComponent);override;
published
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
end;constructor TNewXXX.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;procedure TNewXXX.CMMouseLeave(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseLeave) then
FOnMouseLeave(Self);
end;procedure TNewXXX.CMMouseEnter(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseEnter) then
FOnMouseEnter(Self);
end;
procedure TForm1.MouseWnd(var Message: TMessage);
begin
Case Message.Msg of
wm_mouseMove :
begin
image1.Picture.LoadFromFile('C:\Program Files\Common Files\Borland Shared\Images\Backgrnd\calendar.bmp');
Image1.Refresh;
end;
Cm_mouseleave:
image1.Picture.LoadFromFile('C:\Program Files\Common Files\Borland Shared\Images\Backgrnd\greenbar.bmp');
end;
Image1.dispatch(Message);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.WindowProc := MouseWnd;
end;