Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Отслеживать переход мышки на компонент и уход ее

Delphi , ОС и Железо , Мышка и Курсор

Отслеживать переход мышки на компонент и уход ее

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
 Folgende unit ist eine visuelle Komponente abgeleitet von TImage, welche 
 zusдtzlich die 2 Ereignisse OnMouseEnter und OnMouseLeave beinhaltet. 
}

 { 
 The following unit is a visual component inherited of TImage, which has the 
 2 additional events OnMouseEnter and OnMouseLeave. 
}

 unit ImageEx;

 interface

 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
   Dialogs, ExtCtrls;

 type
   TImageEx = class (TImage)
   private
     { Private declarations }
     FOnMouseLeave: TNotifyEvent;
     FOnMouseEnter: TNotifyEvent;
     procedure CMMouseEnter(var msg: TMessage);
       message CM_MOUSEENTER;
     procedure CMMouseLeave(var msg: TMessage);
       message CM_MOUSELEAVE;
   protected
     { Protected declarations }
     procedure DoMouseEnter; dynamic;
     procedure DoMouseLeave; dynamic;
   public
     { Public declarations }
   published
     { Published declarations }
     property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
     property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
   end;

 procedure Register;

 implementation

 procedure Register;
 begin
   RegisterComponents('Additional', [TImageEx]);
 end;

 { TImageEx }

 procedure TImageEx.CMMouseEnter(var msg: TMessage);
 begin
   DoMouseEnter;
 end;

 procedure TImageEx.CMMouseLeave(var msg: TMessage);
 begin
   DoMouseLeave;
 end;

 procedure TImageEx.DoMouseEnter;
 begin
   if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);
 end;

 procedure TImageEx.DoMouseLeave;
 begin
   if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
 end;

 end.

Это компонент Delphi, конкретно визуальный компонент, который наследуется от TImage, и добавляет два дополнительных события: OnMouseEnter и OnMouseLeave. Эти события триггерятся при входе или выходе мыши из прямоугольника компонента.

Вот разбивка кода:

Интерфейс Секция интерфейса определяет класс TImageEx, который наследуется от TImage. Она объявляет три приватных переменные: FOnMouseLeave, FOnMouseEnter и две процедуры: CMMouseEnter и CMMouseLeave.

Тип Секция типа определяет класс TImageEx.

Приват Приватная секция определяет три приватных переменные:

  • FOnMouseLeave: событие TNotifyEvent, которое будет триггерироваться при выходе мыши из компонента.
  • FOnMouseEnter: событие TNotifyEvent, которое будет триггерироваться при входе мыши в компонент.
  • Две процедуры:
    • CMMouseEnter(var msg: TMessage): обрабатывает сообщение WM_MOUSEENTER, отправляемое при входе мыши в компонент. Она вызывает процедуру DoMouseEnter.
    • CMMouseLeave(var msg: TMessage): обрабатывает сообщение WM_MOUSELEAVE, отправляемое при выходе мыши из компонента. Она вызывает процедуру DoMouseLeave.

Защищенный Защищенная секция определяет две процедуры:

  • DoMouseEnter: вызывается процедурой CMMouseEnter для триггерирования события OnMouseEnter, если оно назначено.
  • DoMouseLeave: вызывается процедурой CMMouseLeave для триггерирования события OnMouseLeave, если оно назначено.

Общественный Общественная секция пуста, но может быть использована для добавления дополнительных общественных процедур или свойств.

Опубликовано Опубликованная секция определяет два чтения-письма свойства:

  • OnMouseEnter: событие TNotifyEvent, которое можно назначить и триггерировать при входе мыши в компонент.
  • OnMouseLeave: событие TNotifyEvent, которое можно назначить и триггерировать при выходе мыши из компонента.

Имплементация Секция имплементации содержит реальный код для процедур, определенных в интерфейсе.

  • RegisterComponents('Additional', [TImageEx]): регистрирует компонент TImageEx в IDE Delphi.
  • Три процедуры (CMMouseEnter, CMMouseLeave и DoMouseEnter/Leave) реализованы как описано выше.

Отслеживать переход мышки на компонент и уход ее, при помощи класса TImageEx, который наследуется от TImage и имеет два дополнительных события OnMouseEnter и OnMouseLeave.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Мышка и Курсор ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-17 20:19:32/0.0035879611968994/0