Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

OnMouseEnter and OnMouseExit   Найти похожие ветки 

 
Sphinx ©   (2004-03-04 13:33) [0]

Поискал немного и в Инете, и на этом форуме, но чего-то не нашел, как можно создать обработку событий появления над, к примеру TImage, курсора мыши onMouseEnter и соответственно onMouseExit за пределя Имадж.


 
Ega23 ©   (2004-03-04 13:34) [1]

OnMouseMove тебе нужен


 
YuRock ©   (2004-03-04 13:36) [2]

Для этого можно обрабатывать OnMouseMove над контролом, на котором лежит TImage. И если перед этим он был над TImage - значит, TImage "потерял" мышь


 
Романов Р.В. ©   (2004-03-04 13:37) [3]

Юрий Зотов ©   (25.09.02 20:56)
1. В обработчиках сообщений нет вызыовов inherited. Подозркваю, что дело может быть в этом (разорвана "родная" цепочка передачи сообшений Parent"ам, что нарушает механизмы VCL).

2. Если делать грамотно, то нужно вводить методы диспетчеризации. Они позволяют наследникам класса безопасно встроить свой код в цепочку обработки события.

TMyImage = class(TImage)
private
FOnMouseEnter: TNotifyEvent;
FOnMouseLeave: TNotifyEvent;
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
 procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
protected
procedure DoMouseEnter; dynamic;
procedure DoMouseLeave; dynamic;
published
 property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
 property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;

procedure TMyImage.CMMouseEnter(var Msg: TMessage);
begin
inheried;
DoMouseEnter
end;

procedure TMyImage.CMMouseLeave(var Msg: TMessage);
begin
inherited;
DoMouseLeave
end;

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

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


 
NAlexey ©   (2004-03-04 13:54) [4]

>Романов Р.В. ©   (04.03.04 13:37) [3]
Зачем так сложно? Достаточно определить у формы(или у хозяина) события CM_MOUSEENTER, и CM_LEAVE где и проверять, если пришло от того кого нужно то и выполнять действия.


 
Романов Р.В. ©   (2004-03-04 14:14) [5]


> NAlexey ©   (04.03.04 13:54) [4]

Для меня скопировать и вставить этот текст было проще чем писать это предложение.



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
14-1078064676
blackweber
2004-02-29 17:24
2004.03.28
как загрузить комп без клавиатуры?


9-1062001143
Ландграф Павел
2003-08-27 20:19
2004.03.28
Посмотрите мою игрушку (2D скролл-аркада на DelphiX c исходникам)


14-1077899292
Adil Aliyev
2004-02-27 19:28
2004.03.28
Простой вопрос по сетю


1-1078502229
APXi
2004-03-05 18:57
2004.03.28
SelectDirectory


4-1074492106
DeScriptor
2004-01-19 09:01
2004.03.28
Как добыть текст из окна типа MessageBox?