Below is the text of the page https://igp.org.ua/articles/a35/ stored 2007-02-18 by archive.org.ua. The original page over time could change. View as original html

Добавление события OnMouseLeave :: Статьи по Delphi - Iguana Sof

Поиск по базе статей [/articles/?PHPSESSID=cf007af68022554afec26ada27544dbd] : 18.08.2006 Изменено разрешение сайта Изменено минимальное разрешение сайта на 1024x768 Подробнее... 02.08.2006 Выгружена игра "Digger Remastered" Вспоминаем старый добрый DOS и времена 80-х! ;) Подробнее... Рекомендуем книгу! Проектирование и дизайн пользовательского интерфейса 2-е издание Книга представляет собой попытку обобщения зарубежного и отечественного опыта в создании пользовательского интерфейса с учетом последних достижений в области визуального программирования. При этом основное внимание уделено практическим вопросам проектиров ... Добавление события OnMouseLeave :: Статьи по Delphi Все потомки TComponent могут посылать сообщения CM_MOUSEENTER и CM_MOUSELEAVE во время вхождения и покидания курсора мыши области компонента. Если вам необходимо, чтобы ваши компоненты обладали реакцией на эти события, необходио написать для них соответствующие обработчики. procedure CMMouseEnter( var msg:TMessage); message CM_MOUSEENTER; procedure CMMouseLeave( var msg: TMessage); message CM_MOUSELEAVE; .. .. .. procedure MyComponent.CMMouseEnter( var msg:TMessage); begin inherited ; {действия на вход мыши в область компонента} end ; procedure MyComponent.CMMouseLeave( var msg: TMessage); begin inherited ; {действия на покидание мыши области компонента} end ; Дополнение Часто приходится сталкиваться с ситуацией, когда необходимо обработать два важных события для визуальных компонентов: MouseEnter - когда событие мыши входит в пределы визуального компонента; MouseLeave - когда событие мыши оставляет его пределы. Известно, что все Delphi объявляет эти сообщения в виде: Cm_MouseEnter; Cm_MouseLeave. Т.е. все визуальные компоненты, которые порождены от TControl, могут отлавливать эти события. Следующий пример показывает как создать наследника от TLabel и добавить два необходимых события OnMouseLeave и OnMouseEnter. /////////////////////////////////////////////////////// // Author: Briculski Serge) // E-Mail: bserge@airport.md // Date: 26 Apr 2000 // //////////////////////////////////////////////////////// unit BS_Label; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TBS_Label = class (TLabel) private { Private declarations } FOnMouseLeave: TNotifyEvent; FOnMouseEnter: TNotifyEvent; procedure CMMouseEnter( var Message : TMessage); message CM_MOUSEENTER; procedure CMMouseLeave( var Message : TMessage); message CM_MOUSELEAVE; protected { Protected declarations } public { Public declarations } published { Published declarations } property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter; end ; procedure Register ; implementation procedure Register; begin RegisterComponents( 'Custom' , [TBS_Label]); end ; { TBS_Label } procedure TBS_Label.CMMouseEnter( var Message : TMessage); begin if Assigned(FOnMouseEnter) then FOnMouseEnter(Self); end ; procedure TBS_Label.CMMouseLeave( var Message : TMessage); begin if Assigned(FOnMouseLeave) then FOnMouseLeave(Self); end ; end . Best regards, Briculski, bserge@airport.md Copyright 2001-2007 © "Iguana Software" . О компании | Продукты | Усуги | Заявление о приватности | Правила использования | Обратная связь IGP Delphi Forum | Библиотека VCL | Увлекательные знакомства, Украина