События Click и DblClick в Grid-ах
Модератор: Модераторы
События Click и DblClick в Grid-ах
столкнулся вот с таким казусом , в любом из типов гридов будь то DBGrid или просто StringGrid есть два типа события - двойной клик и одинарный,
но вот как их разделить чтобы при кликах срабатывал либо тот либо этот, получается одиночный клик срабатывает всегда, даже если это был клик из последовательности Двойного клика
но вот как их разделить чтобы при кликах срабатывал либо тот либо этот, получается одиночный клик срабатывает всегда, даже если это был клик из последовательности Двойного клика
может быть сравнивать интервал между кликами
xcod писал(а):может быть сравнивать интервал между кликами
допустим а как?, вот кликнул ты раз я сравнил время , у первого клика большое, событие одного клика уже сработало я не знаю будет ли второй быстрый клик за первым или не будет...
в windows скорость выполнения двойного щелчка хранится в реестре HCU\Control Panel\Mouse параметр DoubleClickSpeed в миллисекундах, по умолчанию вроде 500
так что в зависимости от настройки системы я думаю вам надо плясать
так что в зависимости от настройки системы я думаю вам надо плясать
xcod писал(а):в windows скорость выполнения двойного щелчка хранится в реестре HCU\Control Panel\Mouse параметр DoubleClickSpeed в миллисекундах, по умолчанию вроде 500
так что в зависимости от настройки системы я думаю вам надо плясать
вопрос не в том какая величина , тут не проблема, а в том как , в принципе разделить эти 2 типа событий, ведь кликая один раз и попадая в обработчик мы заранее не знаем будет ли второй клик... если будет то возможно наступить событие двойного клика а если не будет то будет одинарный клик , но на этапе первого клика мы об этом не знаем...
grigoreo в данном случае вы выбрали не верный путь. Обдумайте логику управления заново, исключая данную ситуацию т.к. вы всегда сначала будете получать событие "клик".
теперь понял
действительно мжт логику поменять
например левая кнопка мыши одно действие, правое другое
действительно мжт логику поменять
например левая кнопка мыши одно действие, правое другое
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
Mr.Smart писал(а):grigoreo в данном случае вы выбрали не верный путь. Обдумайте логику управления заново, исключая данную ситуацию т.к. вы всегда сначала будете получать событие "клик".
Вроде в дельфи эти события нормально разделялись? Т.е. по даблклику онклик не отрабатывал. Или что-то путаю?
dunin писал(а):Вроде в дельфи эти события нормально разделялись? Т.е. по даблклику онклик не отрабатывал. Или что-то путаю?
Нет. Всегда будет срабатывать onClick.
На самом деле, нужно пересмотреть управление.
Либо же замерять время и вызывать DblClick из onClick, что по моему мнению, как то глупо...
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
WAYFARER писал(а):dunin писал(а):Вроде в дельфи эти события нормально разделялись?...
Нет. Всегда будет срабатывать onClick.
Хм... Проверил. Да, всегда отрабатывает.
Вроде сравнительно недавно дельфи совсем забросил, а уже ничего не помню. Склероз, будь он неладен...
