Вниз
Скачать: CL | DM;

Как нормально заставить работать CM_MOUSELEAVE   Найти похожие ветки 

← →
tytus ©   (2007-03-26 15:01) [0]

Доброго дня. Есть форма в длл, показываемая модально. Событие cm_mouseenter срабатывает нормально, а вот CM_MOUSELEAVE - не хочет. Нужно  для установки флага (boolean), по которому на канву формы копируется то один, то другой рисунок (BitBlt).


← →
GrayFace ©   (2007-03-26 15:09) [1]

Должно, раз модально показываешь. Проблемы должны быть с другими вещами...


← →
Loginov Dmitry ©   (2007-03-26 15:15) [2]

> а вот CM_MOUSELEAVE - не хочет


Что, прям совсем ни разу не срабатывает?


← →
tytus ©   (2007-03-26 15:19) [3]

private  
   procedure CmMouseEnter(var Msg:TMessage);message CM_MOUSEENTER;
   procedure CmMouseLeave(var Msg:TMessage);message CM_MOUSELEAVE;

begin

...

procedure TSForm.CmMouseEnter(var Msg:TMessage);
begin
MM:=true;
end;

procedure TSForm.CmMouseLeave(var Msg:TMessage);
begin
MM:=false;
//можно вставить
//MessageBox(Handle,"Leave","...",MB_OK+MB_SYSTEMMODAL);
// и масаги небудет. Только если форма потеряет фокус ввода (кликнуть)
// гдето-на десктопе, то сработает и месаг появится!
end;


← →
Жуков Олег   (2007-03-26 15:37) [4]

В MouseEnter вставь:

var
 EventTrack: TTrackMouseEvent;
...

 EventTrack.cbSize := SizeOf(EventTrack);
 EventTrack.dwFlags := TME_LEAVE;
 EventTrack.hwndTrack:= Handle;
 EventTrack.dwHoverTime := HOVER_DEFAULT;
 TrackMouseEvent(EventTrack);


← →
tytus ©   (2007-03-26 15:55) [5]

>Жуков Олег   (26.03.07 15:37) [4]
Супер! Спасибо!


← →
Loginov Dmitry ©   (2007-03-26 15:56) [6]

Добавь таймер. Через каждые 100 - 200 мс проверяй, находится ли мыша на форме, или вне ее пределов.

А сообщением CM_MOUSELEAVE особо не загоняйся. Жди, когда борландцы подправят в VCL способы оповещения с помощью CM_MOUSELEAVE, или же извращайся другими, но работающими способами.


← →
Loginov Dmitry ©   (2007-03-26 16:59) [7]


> [4] Жуков Олег   (26.03.07 15:37)


Работает для голой формы. Если растянуть на форме к примеру TImage, то работать перестает. Технологии, млин!


← →
Eraser ©   (2007-03-26 19:31) [8]

> [0] tytus ©   (26.03.07 15:01)
> Доброго дня. Есть форма в длл, показываемая модально.

убрать форму из ДЛЛ и проблема решиться сама-собою.


← →
Loginov Dmitry ©   (2007-03-26 19:59) [9]

> убрать форму из ДЛЛ и проблема решиться сама-собою.


Не решится. Дело здесь не в ДЛЛ.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: -0.964 c
1-1174671272
rockman_
2007-03-23 20:34
2007.05.20
Перенос по словам в рядке-заголовке StringGrid


2-1177746016
Cj
2007-04-28 11:40
2007.05.20
Paramstr(?)


11-1150662182
DevilDevil
2006-06-19 00:23
2007.05.20
"PROJECT Informator" - утилитка в помощь KOL программисту


2-1178270371
npu3pak
2007-05-04 13:19
2007.05.20
CheckListBox


15-1176757770
ArtemESC
2007-04-17 01:09
2007.05.20
PHP




   Наверх