| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > CheckListBox и ListBox |
| Автор: MacTep 12.5.2006, 05:56 |
| Как реализовать перетаскивание какой-либо строчки из ListBox в CheckListBox? А если конкретнее, то как узнать при перетаскивании номер той строки в CheckListBox на которую указывает курсор мыши? |
| Автор: Dynamic 12.5.2006, 08:06 | ||
у обоих компонентов установи dragmode = dmautomatic и сделай так:
|
| Автор: MacTep 12.5.2006, 11:32 |
| Dynamic, огромное спасибо за оперативное реагирование. Совет помог. Слегка поколдовал над кодом и вот уже все в порядке. Благодарю и повышаю репутацию. |
| Автор: Dynamic 12.5.2006, 12:00 |
Вот это главное! Что не просто copy/paste! |
| Автор: MacTep 7.6.2006, 10:18 |
| А еще нужно, чтобы отображалось при перетаскивании на CheckListBox выделение в этом компоненте на той строке, на которую перетаскивают. А то как-то кривовато получается, не очень красиво... |
| Автор: Yanis 7.6.2006, 10:51 |
Значит недоколдовал ты... Тебе же j известна, вот и выделяй Item с этой позицией. |
| Автор: MacTep 7.6.2006, 11:01 | ||||
Так не работает:
Так тоже:
Как же тогда правильно? И еще, при перетаскивании на самом ListBox'е такая фигня рисуется, которая перерисовывается только после того, как я мышку отпущу. Почму такое происходит? Как недопустить? |
| Автор: Yanis 7.6.2006, 11:06 |
| Наверное событие должно быть DragOver |
| Автор: MacTep 7.6.2006, 11:22 | ||
Окей. Сделал так:
|
| Автор: Yanis 7.6.2006, 11:28 | ||
Дык позицию надо тоже пересчитывать...
|
| Автор: MacTep 7.6.2006, 11:59 |
| Точно. |
| Автор: Yanis 7.6.2006, 12:04 |
Непонимаю что это значит. |
| Автор: MacTep 9.6.2006, 18:22 | ||
То есть даже если я нажимаю правую кнопку мышки, то у меня уже стартует команда BeginDrag. А мне этого не надо. И тем более этого не надо, когда правую кнопку мыши нажали и быстро отпустили. Что делать? Как правильно написать эту вещь, чтобы корректно работало. |
| Автор: skyboy 9.6.2006, 19:07 |
| Проверяй Button на mbLeft. Если оно другое - то не начинай перетаскивание. |
| Автор: Dynamic 13.6.2006, 05:52 | ||||||
попробуй вместо
|
| Автор: MacTep 15.6.2006, 08:53 | ||
|
| Автор: Dynamic 15.6.2006, 11:05 | ||
а справку почитать?
|
| Автор: MacTep 15.6.2006, 11:09 |
| Отлично. Еще бы знать, как это переводится. |