Articles

Use CM_MOUSEENTER and CM_MOUSELEAVE messages:

   TYourObject = class(TAnyControl)
  ...
  private
    procedure CMMouseEnter(var AMsg: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var AMsg: TMessage); message CM_MOUSELEAVE;
  ...
  end;

implementation

procedure TYourObject.CMMouseEnter(var AMsg: TMessage);
begin
  MessageBox(Parent.Handle,'Mouse enter','Message',MB_OK);
end;

procedure TYourObject.CMMouseLeave(var AMsg: TMessage);
begin
  MessageBox(Parent.Handle,'Mouse leave','Message',MB_OK);
end;