Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Вниз

CM_MouseEnter & CM_MouseLeave 


SB.John   (2002-03-22 13:55) [0]

Когда мышь находится над моим компонентом хочу менять ее курсор.
Нашел два сообщения CM_MouseEnter & CM_MouseLeave. Но это сообщения не WinAPI а дельфийские. в WinAPI есть WM_MouseLEave, а вот WM_MouseEnter нет. Наверняка есть какой-то аналог. Кто подскажет?



troits   (2002-03-22 13:59) [1]

Да. Это WM_MouseMove :-)



troits   (2002-03-22 14:04) [2]

Надо еще учесть, что WM_MouseLEave - не такое простое сообщение. Оно шлется один раз после вызова ф-ции TrackMouseEvent, да и не работает для Windows 95



SPeller   (2002-03-22 14:09) [3]

Отслеживаешь через WM_MouseMove перемещение курсора над нужным элементом, затем
SetCursor(LoadCursorFromFile("C:\MyCursor.ani"));
Убирается
SetCursor(0);
Или чтоб не загружать каждый раз, загружаешь, запоминаешь хэндл и используешь SetCursor когда надо.



SB.John   (2002-03-22 14:54) [4]

Да нет, не то... WM_MOUSEMOVE посылается при перемещении курсора приложению захватившему мышь. А мне надо сообщение один раз, когда курсор только появился над моим TreeView.



SB.John   (2002-03-22 14:57) [5]

SPeller © Это что мне 1Е+23 раз курсор устанавливать пока пользватель над компонентой мышью елозит?



Юрий Зотов   (2002-03-22 15:29) [6]

Есть у контролов такое свойство - Cursor называется...



Dimka Maslov   (2002-03-22 15:34) [7]

Отличия в обработке дельфийских сообщений от виндовых нет. Их разница только в источнике сообщения. Если сообщения WM_XXXX в основном посылаются программе ядром Windows, то сообщения CM_XXXX или CN_XXXX посылаются компонентами друг другу.
Delphi сама находит момент, когда курсор мыши находит на компонент и уходит с него, посылая компоненту следующие сообщения, даже если компонент унаследован от TControl и не имеет оконной функции.
А с задачей изменения курсора, когда мышь оказывается на компонентом прекрасно справляется свойство Cursor, которое есть у каждого компонента. Установи нужный тебе курсор в инспекторе объектов или в run time, и когда мышь окажется над компонентом, курсор сам замениться на выбранный тобой. Обрабатывать сообщения для этого не надо.



SB.John   (2002-03-26 08:56) [8]

Юрий Зотов ,Dimka Maslov, спасибо -все оказалось горраздо проще, чем я думал.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.044 c
1-22679           Fran                  2002-03-26 10:52  2002.04.08  
Нужен компонент типа TrxCalcEdit, но вместо цифр - англ.букв


3-22546           Nina                  2002-03-14 14:17  2002.04.08  
DateTimeToString


1-22692           ded_di                2002-03-26 13:53  2002.04.08  
wysiwyg редактор html таблиц


6-22780           Ivanov Vova           2002-01-21 12:32  2002.04.08  
Как можно сделать?


7-22867           МИФИст                2002-01-10 22:16  2002.04.08  
Кнопки и как с ними бороться...