Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TTreeView перенос нодов из ветки в ветку 
:(
    Опции темы
bigscorp
Дата 12.1.2006, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



smile подскажите пожалуйста: как переносить ноды правильно из одного родителя в другого smile

PM MAIL   Вверх
Vyacheslav
Дата 12.1.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



А посмотреть help слабо
Код

Moves the node to another location in the tree view.

virtual void __fastcall MoveTo(TTreeNode* Destination, TNodeAttachMode Mode);



Там же пример по организации перетаскивания мышкой
Код

The following code uses GetNodeAt to add a dragged node as a child of the node under then mouse when it is dropped.

void __fastcall TForm1::TreeView1DragDrop(TObject *Sender, TObject *Source, int X, int Y)

{
  if (Source != (TObject *)TreeView1 || TreeView1->Selected == NULL)
    return;
  THitTests HT = TreeView1->GetHitTestInfoAt(X, Y);
  TNodeAttachMode AttachMode;
  TTreeNode *pItem = TreeView1->GetNodeAt(X, Y);
  if (HT.Contains(htOnItem) || HT.Contains(htOnIcon))
    AttachMode = naAddChild;
  else if (HT.Contains(htNowhere))
    AttachMode = naAdd;
  else if (HT.Contains(htOnIndent))

    AttachMode = naInsert;
  else
    return;
  TreeView1->Selected->MoveTo(pItem, AttachMode);
}




--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
bigscorp
Дата 12.1.2006, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



не я наверно не правильно поставил вопрос.
у меня есть база из которой беруться данные для построения TreeView на 4 уровнях, т.е. группировки:
1. Пункт - место нахождения
2. Группа - тип абонента
3. Абонент - сам абонент
4. Объект - объекты абонента

вот и после построения его, нужно что бы при изменении пункта, группы, абонента у объекта (в базе) он переходил по новому значению.

PS: и вот еще у меня косячок с хелпом, у меня Borland Developer Studio 2006, и там с примерами ваще слабо.
PM MAIL   Вверх
Vyacheslav
Дата 12.1.2006, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Ну так исходя своих значений(Пункт, Группа) находишь нового родителя NewParentNode
и
Код

Node->MoveTo( NewParentNode, naAddChild );



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
bigscorp
Дата 12.1.2006, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а поиск как организовать?
а если перетаскивать абонента с объектами, то как?

ваще мозги плавятся smile
PM MAIL   Вверх
Vyacheslav
Дата 12.1.2006, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Еще раз. Как перетаскивать абонента я уже показал. Объекты твои, если они принадлежат абоненту перетащутся вслед за абонентом. Они же своего парента не меняют. А уж как найти нового парента для абонента - это уж твоя задача. Ищешь парента первого уровня с заданным пунктом, у пункта в чилдах ищещь нужную группу. А дальше в код в одну строчку.


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
bigscorp
Дата 13.1.2006, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



все. новый день! свежие мозги.
спасибо большое
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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