Главная страница
    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.46 MB
Время: 0.04 c
4-1096449246
BAga
2004-09-29 13:14
2004.11.07
Как поместить иконку в tray?


14-1097911291
MYSTERYO
2004-10-16 11:21
2004.11.07
Ставлю сетевуху - не инициализируется видео-карта,


3-1096979681
RustiK
2004-10-05 16:34
2004.11.07
Конвертация Binary в String


9-1089579747
Евгений Анатольевич
2004-07-12 01:02
2004.11.07
Описание движения автомобиля


1-1098184658
Mishenka
2004-10-19 15:17
2004.11.07
Компонент как в Outlook Express?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский