Главная страница
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.027 c
1-38787
snake1977
2004-02-03 10:36
2004.02.13
Кто работал с PGPSDK отзовитесь!!!


3-38751
jenya_d
2004-01-20 09:49
2004.02.13
Ошибки при работе с БД IB55 во время работы отладчика Delphi


6-38993
BOA_KAA
2003-12-08 16:00
2004.02.13
Автоматическая проверка полученной почты


1-38884
MadGhost
2004-02-04 18:34
2004.02.13
как продолжить поиск в тексте функцией AnsiPos


1-38803
Eli
2004-02-02 13:27
2004.02.13
ClipBoard.AsText - ????? вместо букв