Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Вниз

Как нормально заставить работать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
15-1177337676
rus_Mess
2007-04-23 18:14
2007.05.20
Сообщения на рус


2-1177656093
Atb
2007-04-27 10:41
2007.05.20
Проблема с типами


4-1166374037
Чапаев
2006-12-17 19:47
2007.05.20
Получить оповещение об изменении системного времени


4-1165922919
lock95
2006-12-12 14:28
2007.05.20
CompactFlash требуется считать по секторно


2-1177476103
Dmitry_177
2007-04-25 08:41
2007.05.20
Application.Terminate





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский