当鼠标离开一个image1时,用什么事件?

解决方案 »

  1.   

    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
    //
    end;
      

  2.   

    楼上的方法可以吗?即使可以效率也太低了,控制起来也不方便自己派生子类,然后拦截CM_MOUSELEAVE消息算了!
    ....
    private
      procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
    ....
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TMyImage = class(TImage)
      private
        procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
      end;  TForm1 = class(TForm)
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      MyImage : TMyImage;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    beginend;{ TMyImage }procedure TMyImage.CMMouseLeave(var Message: TMessage);
    begin
      Inherited;
      ShowMessage('正在离开');
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      MyImage:=TMyImage.Create(Application) ;
      with MyImage do
      begin
        Align:=alLeft;
        Width:=Self.Width Div 2;
        Canvas.Brush.Color :=clWhite;
        Parent:=Self;
      end;
    end;Initialization
      RegisterClass(TMyImage);end.