myamanda

博客园 首页 新随笔 联系 订阅 管理
需要在鼠标离开的时候得到通知吗?看看以下的代码,也许会有帮助。你可以把TImage换成其它控件。关键在于对CMMouseLeave消息的处理。

unit Main;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  ExtCtrls;
type
  TMyImage = class(TImage)
  private
    FOnMouseLeave: TNotifyEvent;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  protected
  public
  published
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TMyImage]);
end;

procedure TMyImage.CMMouseLeave(var Message: TMessage);
begin
  inherited;
  if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
end;

end.
posted on 2009-07-24 16:23  myamanda  阅读(234)  评论(0)    收藏  举报