Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Все потомки TComponent могут посылать сообщения CM_MOUSEENTER и CM_MOUSELEAVE во время вхождения и покидания курсора мыши области компонента. Если вам необходимо, чтобы ваши компоненты обладали реакцией на эти события, необходио написать для них соответствующие обработчики.
procedureCMMouseEnter(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;
Дополнение
Часто приходится сталкиваться с ситуацией, когда необходимо обработать два важных события для визуальных компонентов:
Известно, что все Delphi объявляет эти сообщения в виде:
Т.е. все визуальные компоненты, которые порождены от TControl, могут отлавливать эти события. Следующий пример показывает как создать наследника от TLabel и добавить два необходимых события OnMouseLeave и OnMouseEnter.
(*///////////////////////////////////////////////////////*) (*// Author: Briculski Serge (*// E-Mail: bserge@airport.md (*// Date: 26 Apr 2000 (*///////////////////////////////////////////////////////*) unitBS_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 } procedureTBS_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
.