{ 文件名:RealICQHoverImage.pas 功 能:支持MouseEnter和MouseLeave事件的Image组件。 建 立:尹进 历 史: 2005.12.23:补文件说明信息(尹进) } unit RealICQHoverImage; interface uses ExtCtrls, Classes, Messages, Controls; type TRealICQHoverImage = class(TImage) private FOnMouseEnter: TNotifyEvent; FOnMouseLeave: TNotifyEvent; procedure CMMouseMouseEnter(var Message : TMessage);Message CM_MouseEnter; procedure CMMouseMouseLeave(var Message : TMessage);Message CM_MouseLeave; function GetMouseEnter: TNotifyEvent; procedure SetMouseEnter(Value: TNotifyEvent); function GetMouseLeave: TNotifyEvent; procedure SetMouseLeave(Value: TNotifyEvent); function GetCopyRight: String; protected procedure DoMouseEnter; procedure DoMouseLeave; public published property CopyRight: String read GetCopyRight; Property OnMouseEnter: TNotifyEvent read GetMouseEnter write SetMouseEnter; Property OnMouseLeave: TNotifyEvent read GetMouseLeave write SetMouseLeave; end; procedure Register; implementation {TRealICQHoverImage} //------------------------------------------------------------------------------ function TRealICQHoverImage.GetCopyRight: String; begin Result := '版权所有(C) 2002-2016 浙江万赛软件科技有限公司 保留所有权利。'; end; //------------------------------------------------------------------------------ procedure TRealICQHoverImage.CMMouseMouseEnter(var Message: TMessage); begin DefaultHandler(Message); DoMouseEnter; end; //------------------------------------------------------------------------------ procedure TRealICQHoverImage.CMMouseMouseLeave(var Message: TMessage); begin DefaultHandler(Message); DoMouseLeave; end; //------------------------------------------------------------------------------ function TRealICQHoverImage.GetMouseEnter: TNotifyEvent; begin Result := FOnMouseEnter; end; //------------------------------------------------------------------------------ procedure TRealICQHoverImage.SetMouseEnter(Value: TNotifyEvent); begin FOnMouseEnter := Value; end; //------------------------------------------------------------------------------ function TRealICQHoverImage.GetMouseLeave: TNotifyEvent; begin Result := FOnMouseLeave; end; //------------------------------------------------------------------------------ procedure TRealICQHoverImage.SetMouseLeave(Value: TNotifyEvent); begin FOnMouseLeave := Value; end; //------------------------------------------------------------------------------ procedure TRealICQHoverImage.DoMouseEnter; begin if Assigned(FOnMouseEnter) then FOnMouseEnter(Self); end; //------------------------------------------------------------------------------ procedure TRealICQHoverImage.DoMouseLeave; begin if Assigned(FOnMouseLeave) then FOnMouseLeave(Self); end; //------------------------------------------------------------------------------ procedure Register; begin RegisterComponents('RealICQ UI', [TRealICQHoverImage]); end; end.