Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизОбработка 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 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c