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

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Как сделать, чтобы узлы перетаскивались также как и, например, пункты в меню "Пуск". Т.е. можно было перетаскивать не только в другой узел, но и менять порядок узлов. И как при этом отрисовывать дерево. Может есть готовый компонент?
 
B

Barmutik

Есть.. например TVirtualTree .. супер удобный и надёжный компонент .. рекомендую ..
 
G

Guest

Что-то нигде не нашел на него ссылку. Не ткнешь в УРЛ?
 
B

Barmutik

Угу .. реально великая ... разобраться не просто .. но сейчас испольуемв половине проектов .. забыли про все другие деревья и листы ...
 
G

Guest

Только так и не понял, куда деваются узлы при перетаскивании, если dragType = dtOLE?
 
B

Barmutik

Тяжело сказать .. всё надо смотреть.. по фотографии так сказать запой тяжело вылечить :(
 
Б

Баламут

Да, хорошее дерево... Вот только никак не могу вклиниться, как отредактировать текст в нем? И в демках этого нет... Может расскажете поподробнее, а?
 
G

Guest

procedure TfMain.TreeNotesNewText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; NewText: WideString);
var
data: PNodeData;
begin
data := Sender.GetNodeData(Node);
data.text := newText;
end;
 
Б

Баламут

Блин, да у меня даже не получается в самом дереве запустить редактирование строки. Только выбор. Вот я и прошу исходник, если не трудно.
 
G

Guest

У компонента есть свойство TreeOptions->MiscOptions->Editable. Поставь его в true.
 
Б

Баламут

Вот, уже ближе... И тем не менее, после нажатия Enter текст не сохраняется
 
G

Guest

Ну вот пример, вроде работает. Даже не знаю, чем еще помочь :)
 

Вложения

  • test2.rar
    6,8 КБ · Просмотры: 205
Б

Баламут

Да знаешь ты все... Попробуй кликнуть мышью по добавленному узлу!.. Вот и у меня не получилось. А клавой запросто. Глюк или я чего-то не понимаю?
 
Б

Баламут

Хотя ладно, справился. Не понимаю, зачем здесь все сделано через задницу? Такая вроде обычная операция, как добавление узла оборачивается настоящим гемороем...
 
Б

Баламут

В продолжение темы...
А может знает кто, как получить доступ к узлу по его абсолютному индексу?
 
B

Barmutik

Никак .. точно ... я у Автора спрашивал :unsure:

Абсолютный индекс Нода можно узнать .. а наоборот нет.. делайте пробежку по элементам .. быстро работыть будет всё равно...
 
Б

Баламут

А как можно привязать VT к базе данных? Собственно мне лишь это и необходимо. Со стандартным деревом нет никаких проблем (очень удобная штука - абсолютная адресация узлов). Но в нем, стандартном, меня не устраивает механизм перетаскивания. Мне бы простой примерчик сохранения структуры дерева в базе посмотреть... Ну и обратное извлечение оттуда тоже, конечно.
 
B

Barmutik

Это всё делалось .. только там всё не просто и оторвать и выложить кусок врядли получится...

Так по идее там же всё тривиально... вычитываете по уровням и строите .. или как часто бывает строите только верхний уровень и потом на экспанде достраиваете детей...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!