Procedure MouseEn(Var Message: TMessage); Message CM_MouseEnter;
    Procedure MouseOut(Var Message: TMessage); Message CM_MouseLeave;

解决方案 »

  1.   

    在 application.OnMessage 中判断
      

  2.   

    你不会写消息过程吗?
    Procedure TForm1.MouseEn(Var Message: TMessage);
    begin
      Self.Caption:='Mouse Over'; 
    end;
      

  3.   

    Apollo47(阿波罗)说的没错!unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
      TForm1 = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }    Procedure MouseEn(Var Message: TMessage); Message CM_MouseEnter;
        //Procedure MouseOut(Var Message: TMessage); Message CM_MouseLeave;  end;var
      Form1: TForm1;implementation{$R *.DFM}Procedure TForm1.MouseEn(Var Message: TMessage);
    begin
      Self.Caption:='Mouse Over'; 
    end;end.
    这样就完整了!
      

  4.   

    消息过程是什么?
    Apollo47(阿波罗):你都从哪里学来的啊?有没有材料教我们也学一学吧[email protected]谢谢
      

  5.   

    可以啊,CM_MOUSEENTER, CM_MOUSELEAVE是Delphi发明的消息,对任何TControl对象都适用。
      

  6.   

    鼠标移入事件很灵敏,移出不行,要单击一下才可以,达不的我要的效果
    我要实现类似于oicq的效果,怎么实现  啊
    可以继续加分
      

  7.   

    to agui
      我用在控件上怎么不行
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Edit2: TEdit;
        procedure edit1Mousein(var msg : TMessage);message CM_MOUSEENTRY;
        procedure edit1MouseOUT(var msg : TMessage);message CM_MOUSELEAVE;  private
        { Private declarations }
      public
        { Public declarations }
      end;
    var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.edit1Mousein(var msg : TMessage);
    begin
      form1.Caption :='in';
    end;procedure TForm1.edit1Mouseout(var msg : TMessage);
    begin
      form1.Caption :='out';
    end;end.
      

  8.   

    CM_MOUSEENTER
    CM_MOUSELEAVE
    必须自己继承控件,因为这不是Windows的标准消息。
    在Form中声明两个函数:
     procedure CMMouseEnter(var msg:tmessage);message CM_MOUSEENTER; 
     procedure CMMouseLeave(var msg:tmessage);message CM_MOUSELEAVE;
    实现部分如下:
    procedure Form.CMMouseEnter(var msg:tmessage);
    var
     obj:TObject;
    begin
     obj:=Tobject(msg.lParam);//鼠标所在的控件
     if obj<>nil then
     begin 
      //确定控件的类型
       //你的处理
     end;
    end;procedure Form.CMMouseLeave(var msg:tmessage);
    var
     obj:TObject;
    begin
     obj:=Tobject(msg.lParam);//鼠标所在的控件
     if obj<>nil then
     begin 
      //确定控件的类型
       //你的处理
     end;
    end;