Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VT drag&drop, Статью читал, но вопросы есть 
:(
    Опции темы
Dapo
Дата 18.5.2010, 03:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 18.4.2002

Репутация: нет
Всего: 1



Приветствую форумчан.
Работал с  VT горя не знал, пока не столкнулся с необходимостью Drag&Drop. И задача, вроде, простая: необходимо копировать узлы из одной ветки дерева в другую. Вот код который это выполняет (всяческие проверки я опустил):
Код

procedure TfrmMain.vtCfgDragDrop(Sender: TBaseVirtualTree; Source: TObject;
  DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState;
  Pt: TPoint; var Effect: Integer; Mode: TDropMode);
begin
  Effect:=DROPEFFECT_COPY;
  vtCfg.ProcessDrop(DataObject,Sender.DropTargetNode,Effect,amAddChildLast);
end;

Копируются пустые ноды, т.е. внутри TargetNode создается такая же структура какую перетаскиваю, но пустая .Как же мне их проинициализировать в соответствии с теми нодами которые перетащил (необходимо выдернуть названия привязанных объектов и изменить свойство-указатель объекта на другой тип данных)? Я так понимаю, нужно получить доступ к вновь созданным нодам, но как? Доступ к нодам перетаскиваемым нужно получить через Sender.FocusedNode?
Cвойства VT: dmAutomatic, dtOLE, ClipboardFormats = Virtual Tree Data;
Использую VT 4.8.6.

Заранее благодарен всем откликнувшимся.


Это сообщение отредактировал(а) Dapo - 18.5.2010, 07:34
PM MAIL   Вверх
kami
Дата 18.5.2010, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Осталось сделать 2 события:
OnLoadNode и OnSaveNode.
PM MAIL WWW   Вверх
Dapo
Дата 18.5.2010, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 18.4.2002

Репутация: нет
Всего: 1



Извиняюсь. версия 4.8.6.

Пристальнее посмотрел в статью, первую ноду из перетаскиваемых можем взять Source.GetSortedSelection? А первую из вновь созданных - перебором дочек TargetNode пока не наткнемся на "пустую ноду"? smile

Добавлено через 14 минут и 45 секунд
kami, спасибо ). Если бы я вгляделся еще пристальнее то, наверное, уже искал бы глаза где-нибудь под столом! smile Ты очень вовремя!
Вопрос снят.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.