Delphi

Ttreeview и современный Drag&drop

Как сделать, чтобы узлы перетаскивались также как и, например, пункты в меню "Пуск". Т.е. можно было перетаскивать не только в другой узел, но и менять порядок узлов. И как при этом отрисовывать дерево. Может есть готовый компонент?
Есть.. например TVirtualTree .. супер удобный и надёжный компонент .. рекомендую ..
Что-то нигде не нашел на него ссылку. Не ткнешь в УРЛ?
Это родной сайт разработчика
Большое спасибо. Великая штука.
Угу .. реально великая ... разобраться не просто .. но сейчас испольуемв половине проектов .. забыли про все другие деревья и листы ...
Только так и не понял, куда деваются узлы при перетаскивании, если dragType = dtOLE?
Тяжело сказать .. всё надо смотреть.. по фотографии так сказать запой тяжело вылечить
Да, хорошее дерево... Вот только никак не могу вклиниться, как отредактировать текст в нем? И в демках этого нет... Может расскажете поподробнее, а?
procedure TfMain.TreeNotesNewText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; NewText: WideString);
var
data: PNodeData;
begin
data := Sender.GetNodeData(Node);
data.text := newText;
end;
Блин, да у меня даже не получается в самом дереве запустить редактирование строки. Только выбор. Вот я и прошу исходник, если не трудно.
У компонента есть свойство TreeOptions->MiscOptions->Editable. Поставь его в true.
Вот, уже ближе... И тем не менее, после нажатия Enter текст не сохраняется
Ну вот пример, вроде работает. Даже не знаю, чем еще помочь :-)
Да знаешь ты все... Попробуй кликнуть мышью по добавленному узлу!.. Вот и у меня не получилось. А клавой запросто. Глюк или я чего-то не понимаю?
Хотя ладно, справился. Не понимаю, зачем здесь все сделано через задницу? Такая вроде обычная операция, как добавление узла оборачивается настоящим гемороем...
В продолжение темы...
А может знает кто, как получить доступ к узлу по его абсолютному индексу?
Никак .. точно ... я у Автора спрашивал
Абсолютный индекс Нода можно узнать .. а наоборот нет.. делайте пробежку по элементам .. быстро работыть будет всё равно...
А как можно привязать VT к базе данных? Собственно мне лишь это и необходимо. Со стандартным деревом нет никаких проблем (очень удобная штука - абсолютная адресация узлов). Но в нем, стандартном, меня не устраивает механизм перетаскивания. Мне бы простой примерчик сохранения структуры дерева в базе посмотреть... Ну и обратное извлечение оттуда тоже, конечно.
Это всё делалось .. только там всё не просто и оторвать и выложить кусок врядли получится...
Так по идее там же всё тривиально... вычитываете по уровням и строите .. или как часто бывает строите только верхний уровень и потом на экспанде достраиваете детей...