Главная страница
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.599 c
3-1097136421
kukuikar
2004-10-07 12:07
2004.11.07
Отключить подтверждение удаления записи


8-1091793583
Rater
2004-08-06 15:59
2004.11.07
Как созд. AVI для TAnimate или Проиграть анимированный Gif?


4-1096024986
MooSE
2004-09-24 15:23
2004.11.07
Как вызвать диалог завершения работы Windows?


1-1098793672
dim_
2004-10-26 16:27
2004.11.07
Paint


3-1097220207
anat
2004-10-08 11:23
2004.11.07
ODAC-TOraLoader