Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: 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 вся ветка

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
14-1098301751
Maxi_L
2004-10-20 23:49
2004.11.07
нужна помощь


1-1098365614
Эли
2004-10-21 17:33
2004.11.07
Контекстное меню в Эксплорере


14-1098102160
}|{yk
2004-10-18 16:22
2004.11.07
Кто смотрел Космическу одиссею 2001 или читал Кларка


3-1097300447
softmaster
2004-10-09 09:40
2004.11.07
ВЫбор записей


4-1096671072
НовичОк
2004-10-02 02:51
2004.11.07
Заголовки кнопок в другом приложении