Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1098265555
Анатолий
2004-10-20 13:45
2004.11.07
Установить курсор перед выделенным текстом


1-1098794068
Senti
2004-10-26 16:34
2004.11.07
Контрол теряет фоксус при первом создании формы


1-1097601135
Grrey
2004-10-12 21:12
2004.11.07
ООП можно ли это сделать?


14-1097837021
DomainName
2004-10-15 14:43
2004.11.07
Как зарегистрировать доменное имя?


1-1097385449
focor
2004-10-10 09:17
2004.11.07
mousewheel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский