![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
двойной клик или 2 одинарных [D5, D7, WinXP]
Charly22 © (2005-09-26 20:59:00)Доброго здравия!
Представьте себе, что рисуется полигон, и координаты его вершин заносятся в массив.
Начало рисования полигона инициализируется двойным щелчком в OnMouseDown. Промежуточные вершины ставятся одним кликом. последняя вершина, как и первая, обозначается двойным кликом. Допустим, квадрат! Массив здесь должен содержать 4 элемента, а на самом деле в нем 6 элементов. Почему это получается, я понимаю. А как этого избежать, подскажите, пожалуйста!
Джо (2005-09-27 05:19:00) [1]Вообще-то, время дабл-клика можно определить, вызвав функцию GetDoubleClickTime(), но, по своему опыту разработки аналогичных редакторов замечу следующее. Строить редактор таким образом - не очень хорошая идея. Есть 2 более приемлимых варианта:
1. При наведении на первый узел в пределах 1-3 пикселей курсор принимает форму, означающую замыкание полигона и одинарный щелчок его таки замыкает :) (используется, например в MapInfo)
2. Предоставить специальную кнопку "Замкнуть полигон". Я, в свое время, предпочел именно такой вариант. Картинка с иллюстрацией подхода: http://webfile.ru/540822(17 кбайт).
Германн (2005-09-27 01:35:00) [2]Увы, 17-я строка опять не приведена! :(
Kolan (2005-09-26 22:28:00) [3]Отличить двойной клик от одинарного можно проверив промежуток между кликами.
Если он мал(по моему это GetDoubleClickTime или что-то в этом роде) то это дваойной клик....
guest_new (2005-09-26 22:02:00) [4]
> Почему это получается, я понимаю. А как этого избежать,
> подскажите, пожалуйста!
ну если понимаешь то чё спрашиваешь ? :)