Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизНе ловится событие от колеса мыши Найти похожие ветки
← →
pasha_golub © (2005-09-02 14:03) [0]
procedure TForm.FormMouseWheel(Sender: TObject;
Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint;
var Handled: Boolean);
begin
Dialogs.ShowMessage("!");
end;
Не работает. У parent"ов не объявлено обработчиков. При компиляции помечается, как доступный код.
При тесте, ничего не происходит.
Можно конечно поймать через обработку оконных сообщений, но интересен вопрос: "А что не так?".
Спасибо
← →
pasha_golub © (2005-09-02 14:15) [1]Прошу, прощения. На форме динамически создавался контрол и растягивался на весь размер. От того и не ловилось.
Можно удалить.
← →
Digitman © (2005-09-02 14:16) [2]не знаю ... у меня все расчудесно "ловится" .. на "чистой" форме в "чистом" проекте
> У parent"ов не объявлено обработчиков
а может ты в Application.OnMessage что-либо непотребное творишь ?
← →
Barloggg (2005-09-20 15:27) [3]Да, а какое сообщение надо поймать, чтобы обработать именно поворот колеса мыши?
WM_MouseWheel отображает только нажатие колеса, но никак не поворот. Где это ловится?
← →
BFG9k © (2005-09-20 20:53) [4]WM_MouseWheel - сообщение именно поворота колеса мыши. Если обработчик пренадлежит главной форме, то поворот колеса мыши ловится отовсюду. Если же нет, то до обработчика дело не доходит. Зачем так сделано, остается только догадываться.
Ответ читатйте здесь : http://delphimaster.net/view/1-1127207851/
← →
Barloggg (2005-09-21 12:19) [5]O! Это может помочь, спасибо.
Когда я пробовал что-то сделать через голое WinAPI в получаемое WM_MouseWheel означало лишь нажатие колеса...
← →
BFG9k © (2005-09-22 17:41) [6]
> Когда я пробовал что-то сделать через голое WinAPI в получаемое
> WM_MouseWheel означало лишь нажатие колеса
Вранье! :)
P.S.: Там по ссылке - ApplicationEvents - мощная вещь, как раз то что надо.
← →
y-soft © (2005-09-22 20:55) [7]В старых версиях Windows (до Win98) WM_MOUSEWHEEL действительно не работало, там необходимо обрабатывать другое сообщение:
Windows 95, Windows NT 3.51: Support for the mouse wheel is provided through a separately-running module, MSWheel, that generates a MSH_MOUSEWHEEL message. The MSWheel module, which consists of MSWheel.exe and MSWheel.dll, is installed with the IntelliPoint software that is shipped with the IntelliMouse® pointing device. In addition, MSH_MOUSEWHEEL is defined in the header file (ZMouse.h) that an application must use to implement support for the wheel via the MSWheel module.
MSH_MOUSEWHEEL
zDelta = (int) wParam; // wheel rotation
xPos = LOWORD(lParam); // horizontal position of pointer
yPos = HIWORD(lParam); // vertical position of pointer
Note, there is no fwKeys for MSH_MOUSEWHEEL. Otherwise, the parameters are exactly the same as for WM_MOUSEWHEEL.
It is up to the application to forward MSH_MOUSEWHEEL to any embedded objects or controls. The application is required to send the message to an active embedded OLE application. It is optional that the application sends it to a wheel-enabled control with focus. If the application does send the message to a control, it can check the return value to see if the message was processed. Controls are required to return a value of TRUE if they process the message.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c