Главная страница
    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
2-1177701007
Познающий
2007-04-27 23:10
2007.05.20
Коды Рида Соломона


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


15-1176804812
Kolan
2007-04-17 14:13
2007.05.20
А что это с rsdn — негрузится че-то&#133


2-1178203002
M1sT
2007-05-03 18:36
2007.05.20
Нелицензионный Rave Reports...


6-1163694731
Tiberius
2006-11-16 19:32
2007.05.20
Текст из браузера





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский