Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удержание кнопки мыши и кнопки... [Delphi, Windows]


MTsv DN ©   (2005-11-22 09:49:00) 

Привет...

Сразу прошу Модератора не перекидывать тему в WinAPI, т.к. там уже есть такая...

А вопрос такой... Мне нужно разделить работу, при нажатии на левую кнопку мыши...
В первом случае: обычный клик (WM_LBUTTONDOWN + WM_LBUTTONUP) -> Процедура 1...
Во втором случае: нажатие + удержание ( WM_LBUTTONDOWN + ???????) -> Процедура 2...

Как это реализовать...

С Уважением MTsv DN


Vladimir Kladov   (2005-11-22 19:03:00) [1]

SetCapture, OnMouseUp->ReleaseCapture


MTsv DN   (2005-11-22 19:02:00) [2]

> а если таймер запустить в WM_LBUTTONDOWN и по его истечении если не было WM_LBUTTONUP начать крутить
Да... Именно так и сделал...

С Уважением MTsv DN


-=Mike=-   (2005-11-22 16:12:00) [3]

а если таймер запустить в WM_LBUTTONDOWN и по его истечении если не было WM_LBUTTONUP начать крутить


MTsv DN   (2005-11-22 12:54:00) [4]

Привет...

Это то понятно, но как быть с кликом... Т.е. неправильно выразился, как выделить удержание?..

В общем смысл такой: делаю свой скроллбар... У стандартного на кнопку вниз нажал - сработало (WM_VSCROLL, SB_LINEDOWN), а удерживаешь (WM_VSCROLL, SB_PAGEDOWN)

С Уважением MTsv DN


SPeller   (2005-11-22 12:45:00) [5]

Первое что приходит в голову - по сообщению BUTTONDOWN выставляешь флаг, например, fLButtonPressed := true; а на обработчике LBUTTONUP или ????? смотришь на этот флаг, если Да, то обрабатываешь, если Нет, то ничего не делаешь. А после обработки ставишь его в false. Понятно изложил мысль? )


Thaddy   (2005-11-22 11:32:00) [6]

The " ugly" easy way is to use an assignable typed constant as a flag and reset it after use. The better way is to write a helper object that catches the mouse and keyboard events and handles them. you need to catch both the mouse AND the keyboard events, so two distinctly different things. It is not difficult btw. Use OnMessage for example


Наверх

Титульная страница Поиск, карта сайта Написать письмо