Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.13;
Скачать: CL | DM;

Вниз

Как различить одинарный и двойной клик.   Найти похожие ветки 

 
Семен Сорокин ©   (2004-02-04 17:46) [0]

Ситуация следующая: есть два обработчика один отрабатывает при одиночном клике (компонента TChart использую MouseDown), а второй обработчик стоит на DoubleClick. Дело в том что при двойном щелчке мы попадаем сначала в обработчик первого события, а затем второго. Хотелось бы в случае двойного клика выполнять только его обработчик. У кого будут какие нибудь идеи? Можно, конечно, воспользоваться таймером, но уж как-то не хочется :), может есть более красивые решения?
С уважением.


 
Anatoly Podgoretsky ©   (2004-02-04 17:56) [1]

Именно таймер, запрещать при двойном клике, при срабатывании одинарный клик. Время клика можно получить от системы.


 
Семен Сорокин ©   (2004-02-04 18:11) [2]

Спасибо, значит буду делать с помощью таймера.


 
Семен Сорокин ©   (2004-02-04 18:54) [3]

Уважаемые, может быть кто-нибудь помнит как можно найти максимальное время двойного щелчка (которое устанавливается в свойствах мыши)?
Искал в MSDN, нашел только для VisualFoxPro, наверное плохо искал. Ткните пожалуйста носом :)


 
Семен Сорокин ©   (2004-02-04 19:22) [4]

Вопрос снят, нашел.
var
Keys: TMouseKeys;
...
Keys.cbSize := sizeof(Keys);
SystemParametersInfo(SPI_GETMOUSEKEYS, sizeof(Keys), @Keys, 0);


 
Юрий Зотов ©   (2004-02-04 19:25) [5]

GetDoubleClickTime


 
Семен Сорокин ©   (2004-02-04 19:44) [6]

Юрий Зотов © (04.02.04 19:25) [5]
GetDoubleClickTime

кто бы мог подумать :))
спасибо.


 
Юрий Зотов ©   (2004-02-04 19:47) [7]

Но вообще-то, проблема непонятна. Во-первых, зачем сажать обработку одиночного клика на OnMouseDown, когда есть уже готовый OnClick? Во-вторых, в OnMouseDown приходит ShiftState, а в нем есть уже готовый ssDouble и остается только его проверить.

VCL уже все разрулила сама, зачем же дублировать обработку?


 
Anatoly Podgoretsky ©   (2004-02-04 19:48) [8]

Семен Сорокин © (04.02.04 19:44) [6]
:-)
Всегда советую, сначала попробовать перевести на ангельский.


 
Семен Сорокин ©   (2004-02-04 20:04) [9]

Во-первых, зачем сажать обработку одиночного клика на OnMouseDown, когда есть уже готовый OnClick?
потому как есть там Shift из которых я вытаскиваю модификаторы (про GetKeyState помню :), к тому-же OnClick также срабатывает перед OnDoubleClick.
Во-вторых, в OnMouseDown приходит ShiftState, а в нем есть уже готовый ssDouble и остается только его проверить.
OnMouseDown при DoubleClick происходит дважды и ssDouble появляется на втором нажатии, при первом его нет => происходит событие.
С уважением.



Страницы: 1 вся ветка

Текущий архив: 2004.02.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
3-38723
Жук
2004-01-20 14:39
2004.02.13
Проход по BookmarkList


7-39121
fiatik
2003-11-28 23:17
2004.02.13
Help! Как запросить у компа: какие системе доступны компорты?


14-39067
Думкин
2004-01-24 05:07
2004.02.13
С днем рождения! 24 января.


3-38741
Oleg_em
2004-01-21 13:59
2004.02.13
Активные пользователи в IB


3-38706
Марат
2004-01-22 08:48
2004.02.13
TDBLookupComboBox