![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Alix |
|
|||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
Обыскал рунет, но так и не нашел описание того, как можно сделать перемещения элементов в TreeView вверх/вниз на позицию, влево/вправо (т.е. выше на каталог и поместить в нижний каталог).
Сам я это все сделал. Точнее пока только вверх/вниз. И оно работает. Но если один элемент переместить вверх/вниз опр. (притом фиксированное!) число раз, то вылетает Access Violation. А так ничего... работает... Но проблема в том, что я не могу найти откуда у этого violation'a "ноги растут"... Думал что это конфликт с обработчиками событий TreeView'a, но закоментировал их код, а ошибка все равно осталась. Пожалуйста, напишите, как бы вы сделали перемещение элемента вверх/вниз (хотя бы это). Заодно в DRKB поместить можно будет Перемещать можно по-разному. Как способ предлагаю написать ф-ю Exchange(node1, node2 : TTreeNode), которая меняла бы соседние эл-ты местами. Соответственно функции:
-------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
код Exchange() привести не помешало бы...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Alix |
|
||||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
Читайте внимательнее! -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||
|
|||||
| _hunter |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
из чего я делаю вывод что код есть. его я и просил. или под
следует понимать приглашение для всех желающих написать эту функцию? -------------------- Tempora mutantur, et nos mutamur in illis... |
||||
|
|||||
| Alix |
|
|||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
Поясняю.
Да, код есть. Но есть и непонятные глюки. Поэтому я прошу тех, кто может, написать всего одну очень простую функцию Exchange. Свой код я не привожу по той причине, что, быть может, у данной задачи есть несколько путей решения и я не хочу, чтобы другие, посмотрев на мой код, начали искать решение в том же направлении, где его искал я. Тогда, может быть, появятся решения другого типа нежели у меня и, может быть, с ним не будет никаких глюков. Хотя если вы будете настаивать, свой код я выложить могу. Благо это задача copy/paste... -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
код выкладывай ( заодно о своих ошибках узнаеш )
а решение зависит от того, нужно ли детей ноды переносить. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Alix |
|
||||||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
Разумеется! Ладно. Уломал. Вот код:
Да! Забыл здесь написать (а так это есть). В функциях MoveUp/Down оисанных выше вызов Exchange обрамлен следующим кодом:
-------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||||
|
|||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Вот такой код позволяет перетаскивать элементы Treeview
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
alexeis1
я думаю ему нужно не передаскивание, а именно перемещение -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 02:43 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Quadr0
Сортировка вроде не работает, а внутренние элементы дерева(листья) перемещаются неверно (перескакивают с уровня на уровень) -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 02:43 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Quadr0
Ввел весь алфовит при нажатии на кнопку "сортировка по возрастанию", "сортировка по убыванию" ноль эмоций компилировал в delphi7 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Alix |
|
|||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 7 Всего: 23 |
Well...
Спасибо, Quadr0. Сортировка мне даром не была нужна, правда, но смысл ясен. Увидел naInsert - не поверил, что оно есть, полез в хелп - точно есть. Я просто уже смотрел moveTo, но не заметил там naInsert и долго, помниться, еще ругался, почему везде одни только naAdd'ы Еще мне не нужен был переход к родителю - это уже отдельные функции. В итоге мой код:
Глюков тоже больше нет -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 02:43 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |