|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.12.2009, 20:46 | #1 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
Отличный Drag And Drop в TTreeView
Здравствуйте ! Столкнулся с интересной проблемой. Реализовал Drag And Drop в TTreeView. Все вроде нормально работает, но не отлично. А именно - работает перетаскивание из пункта в пункт. А вот если, например - в пункте есть три подпункта (1, 2, 3) и их нужно поменять местами (3, 2, 1), это уже никак не сделать, разве что все эти подпункты выкидывать в другой пункт, а потом по очереди вкидывать обратно. Проект в приложении. Помогите пожалуйста, смотрел тему :
http://programmersforum.ru/showthread.php?t=54194 Хорошенько погуглил, но того, что нужно так и не нашел |
09.12.2009, 21:45 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Да ничего сложного.
Код:
Один из методов решения - пусть по нажатию, например, клавиши CTRL у вас меняется naInsert на naAdd... То есть без клавиши CTRL будет вставка "перед", а с нажатием - "после". |
10.12.2009, 01:20 | #3 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
Да, идея действительно хорошая. Только вот у меня возникли проблемы с отслежкой зажатой клавиши CTRL. Как и куда поставить проверку ?
|
10.12.2009, 01:36 | #4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Тоже просто.
Код:
Код:
Ну, а дальше...? (поверьте, я хочу вас "научить", а не "сунуть готовый исходник". поэтому и "мучаю" ) |
10.12.2009, 01:49 | #5 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
Спасибо Я понял. И правильно вы делаете Поддерживаю ! А насчет процедуры TreeView1KeyDown не подумал, что-то меня переубедило, что именно там нужно логическую переменную ставить
Только у меня будет вопрос, почему именно : Код:
Код:
|
10.12.2009, 08:36 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Специально разделили
key это нефункциональные клавиши клавиатуры. Остаются SHIFT, CTRL, ALT - потому что они используются в стандартных горячих клавишай. Это нормальный ход
I'm learning to live...
|
10.12.2009, 11:33 | #7 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
mihali4, возникли проблемы с флажком. Сделал так :
Код:
Код:
|
10.12.2009, 14:05 | #8 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Просто
Код:
Код:
|
10.12.2009, 15:23 | #9 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
Пробовал, но не работает, то что мне нужно. Видно из-за того, что у меня еще используется DragOver и там тоже проверка на эту переменную и ехит. Посмотрите исходники, я думаю поймете в чем проблема. Я делаю так, запускаю екзе, зажимаю контрол, меняю положение подпунктов. Но потом отпускаю контрол и хочу вложить подпукнт в подпункт и вот все, не работает (опять обмен пунктов работает, буд-то контрол зажат), если я раз сделаю обмен, то потом могу выполнять уже вкладывание.
|
10.12.2009, 17:28 | #10 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Елы-палы, ну добавьте
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
drag and drop | kelty | Помощь студентам | 0 | 11.09.2009 23:00 |
Drag and Drop | nusik | Общие вопросы C/C++ | 2 | 09.07.2009 11:09 |
Нужна помощь (Drag-And-Drop & Drag-Abd-Dock)) | Arkuz | Общие вопросы Delphi | 1 | 18.04.2009 00:15 |
Drag and Drop | Xardas | Общие вопросы Delphi | 8 | 20.01.2008 23:09 |