Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.047 c
3-1172908676
Бабенко Олег
2007-03-03 10:57
2007.05.20
Перевод базы формата Firebird 2.0 в Firebird 1.5


2-1178264809
newbie2
2007-05-04 11:46
2007.05.20
string в variant, как?


6-1163510799
DVM
2006-11-14 16:26
2007.05.20
Отправка письма через Winsock, искажается поле Subject


4-1166551928
2expres
2006-12-19 21:12
2007.05.20
Помогите в Delphi организовать таймер на 10мс


2-1177153283
Cavalera
2007-04-21 15:01
2007.05.20
Помогите, возникла проблема с игрой