Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
ВнизКак различить одинарный и двойной клик. Найти похожие ветки
← →
Семен Сорокин (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c