Вниз
Скачать: CL | DM;

Обработка onClick при DragMode:=dmAutomatic   Найти похожие ветки 

← →
TechnoDreamer   (2004-10-19 01:22) [0]

Есть несколько компонентов TImage, которы хотелось бы перетасивать друг на друга (drag"n"drop). Но возникла проблема, перестали происходить события onClick и onDblClick, а без них никак, и drag"n"drop позарез нужен. Подскажите как выйти из ситуации.


← →
KilkennyCat ©   (2004-10-19 01:24) [1]

onMouseUpDown или реализация драг-энд-дропа своими силами.


← →
Германн ©   (2004-10-19 01:50) [2]

Очень мне не нравится ситуация, когда один наследник TGraphicControl перекрывает другого такго же. :((


← →
TechnoDreamer   (2004-10-19 02:11) [3]

Германн, вы о чём? Можно пояснить?


← →
Германн ©   (2004-10-19 02:19) [4]

2 TechnoDreamer   (19.10.04 02:11) [3]
"На пальцах" - нет, не могу. Но не нравится мне сама идея, когда "lightweight control" используется в режиме Drag"n"Drop. :(

Может быть я и не прав.


← →
TechnoDreamer   (2004-10-20 01:03) [5]

2 Германн
//"На пальцах" - нет, не могу. Но не нравится мне сама идея, когда "lightweight control" используется в режиме Drag"n"Drop. :(

Чуствую себя полным ламом (что не далеко от истины), но я совершенно не пойму о чем вы, и что такое "lightweight control"?

В любом случае, как я понял вы решили что мне надо двигать сами TImage"ы. У меня на форме их восем штук, и если тянуть и бросать их друг на друга, то их изображения меняются местами, сами контролы физически не перемещаются. На onClick у меня выберается активный контрол, есть еще и обработка onDblClick, вот и не получается у меня связать клик с драг-н-дропом :-(


← →
KilkennyCat ©   (2004-10-20 02:17) [6]


> TechnoDreamer   (20.10.04 01:03) [5]


я так понимаю, что можно перетащить и неактивный, в этом случае активация по онклику мешает. Не знаю, что мешает даблклику, но в первом варианте решение проблемы я уже ответил. могу разжевать: реализуем онклик руками:
1) отлавливаем онмаусдаун
2) отлавливаем онмаусап
3) проверяем, произошел ли драг. если драга не было - считаем, что был онклик и активируем.


← →
TechnoDreamer   (2004-10-20 22:15) [7]

Тут не онклик мешает драгу, при драге не происходит ни OnClick, ни OnDblClick. И я не предсталяю как реализовать через моусдаун и маусап, даблклик.


← →
KilkennyCat ©   (2004-10-21 00:15) [8]

а как при драге могут возникать клики? вроде как клик - это даун и ап мышей над объектом, его не двигая.


← →
TechnoDreamer   (2004-10-21 01:27) [9]

Ну в моем понимании тоже, клик, это когда юзер быстро нажал и отпустил кнопку не двигая курсор. Я говорю не во время драга, а вообще, при включенной его обработке. Т.е. onClick ВООБЩЕ не возникает (и дблклик тоже), получается, что драг обрабатывается раньше. Когда я ставлю DragMode:=dmAutomatic, событие onClick уже не происходит, ВООБЩЕ. Надеюсь понятно объяснил. И видимо простых путей решения тут нет.
Но я не знаю как реализовать обработку двойного клика, если драг буду делать полностью сам.


← →
KilkennyCat ©   (2004-10-21 01:40) [10]

тогда сделать все наоборот. Драг всегда вырубать, врубать только при проверке "мышь-нажата-и-перемещается-над-объектов".



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
3-1097133430
S@shka
2004-10-07 11:17
2004.11.07
Работа с типом CHAR как с массивом


1-1098447124
Wolffgang
2004-10-22 16:12
2004.11.07
Assigned?


4-1096612950
Мирон
2004-10-01 10:42
2004.11.07
Подскажите, как удалить файл не в корзину?


14-1098180650
miwa
2004-10-19 14:10
2004.11.07
Как я защищался или Зачем нужно заочное образование.


4-1096670108
GanibalLector
2004-10-02 02:35
2004.11.07
PortMon




   Наверх