| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > DRAG & DROP & MOUSEDOWN & UP |
| Автор: Artemon 10.8.2005, 09:50 |
| Такое впечатление, что Builder глючит, привожу код: void __fastcall MouseDown(TObject* Sender,..................................) { if(Button == mbLeft) ((TImage*)Sender)->BeginDrag(false,10); } void __fastcall MouseUp(TObject* Sender,..................................) { ShowMessage("OK"); } Внимание глюк: При нажатии левой кнопки мыши как и положено происходит событие MouseDown, но далее не отпуская мыши проиходит событие MouseUp. Если кто знает в чем дело, подскажите. Спасибо. |
| Автор: Mal Hack 10.8.2005, 14:52 |
| Проверил. Все нормально. Я думаю, что BeginDrag как бы эмитирует Up или вызывает. |
| Автор: Поручик 14.8.2005, 21:32 |
| А как обойти вызов или MouseUp при BeginDrag'e?????? |
| Автор: p0s0l 14.8.2005, 22:47 | ||||
| В BeginDrag идёт вызов Perform( WM_LBUTTONUP, ... ) Чтобы не срабатывал MouseUp сделай так:
Но опять же, если тебе нужно отловить отпускание кнопки, то надо бы обрабатывать событие OnEndDrag... А вообще, к чему это ? Может проще выставить у Image'ов свойство DragMode в dmAutomatic, а в событии OnCreate у формы написать:
|
| Автор: Artemon 18.8.2005, 10:40 |
| Почему-то ничего не помогает, может еще как-нибудь можно решить эту проблеу? |
| Автор: Artemon 19.8.2005, 10:31 |
| Я подозреваю, что вопрос не понят до конца. Вопрос: Над Image's нужно сделать следующие действия: 1) Перетаскивать Image. 2) Обрабтывать отпускание кнопки мыши. Когда я пытаюсь это сделать, у меня роисходит следующее: Я нажимаю на Image (но не тащу его) и сразуже происходит событие OnMouseUp. Как же сделать так, что бы все шло своим чередом? |
| Автор: Mal Hack 19.8.2005, 10:37 |
| Как вариант - повесить обработчик не на OnMouseUp, а на события окончания Drag&Drop, OnEndDrag. |
| Автор: Artemon 26.8.2005, 19:09 |
| Что ничего не вяжется друг с другом. Если использовать OnEndDrag, то все работает нормально, но в моей программе имеется возможность отключить DRAG&DROP. Ролучается что если я отключаю DRAG&DROP, то автоматически отключается OnMouseUp. Как мне действовать в этой ситуации? |