Страница 1 из 2

Копирование в TreeView.

Добавлено: 05 мар 2006, 11:13
Лелик_1044
Допустим есть TreeView1.

Вещи
->Можно есть
-->Яблоки
-->Груши
->Нельзя есть
-->Утюг
-->Холодильник
Животные
->Домашние
-->Кошка
-->Собака
->Дикие
-->Тигн
-->Буйвол

Также есть TreeView2
как сделать так:
1) доустим я выбираю "Тигр". И вся стуркутра копируется и TV1 в Tv2. причем если такая структура есть она недобовляется а просто вставляется новое значение.
2) Если выбран "Дикие" Выдовалось сообщение "Есть подменю" или добовлялось все подменб автоматом... Тоже самое касается верхнего уровня...

Если что-то неонято пишите постараюсь объяснить...

Добавлено: 06 мар 2006, 16:49
Blood_Magic
что именно должно скопироваться в 1 и 2 случаи? результат покажи, так проще будет

Добавлено: 06 мар 2006, 17:32
Лелик_1044
Лана ответ я уже нашел

Еще один вопрос появился как скопировать эту струкутур в Listbox. Копировать надо те ноды которые не имеют подуровней...

Добавлено: 06 мар 2006, 17:56
Игорь Акопян
не совсем понятно что надо сделать? скопировать всех детей выбранной ноды?

Добавлено: 06 мар 2006, 23:56
Лелик_1044
Игорь Акопян,
да я это потом понял что неточно объяснил
пример выше после нажтия кнопки копирвоать в листобоксе должен быть список

яблоки
груши
холодильник
утюг
собака
кошка
тигр
буйвол

т.е. те ноды не имеющие поуровней

Добавлено: 07 мар 2006, 11:03
Игорь Акопян
ну тут так - идём по всем нодам первого уровня и выковыриваем детей каждой, либо читаем поподробнее про свойство NextSibling (нет под рукой - но это что-то похожее)

Добавлено: 07 мар 2006, 11:09
Игорь Акопян
чёт я сегодня плох... до конца не дочитываю...
можно просто идти циклом по всем нодам и если Node.HasChildren = false копировать...

Добавлено: 07 мар 2006, 11:30
Blood_Magic

Код: Выделить всё

  for i:=0 to TreeView1.Items.Count-1 do
    If TreeView1.Items.Item[i].Count=0 then
      Memo1.Lines.Add(TreeView1.Items.Item[i].Text)

Добавлено: 07 мар 2006, 11:33
Blood_Magic

Код: Выделить всё

  for i:=0 to TreeView1.Items.Count-1 do
    If not TreeView1.Items.Item[i].HasChildren then
      Memo1.Lines.Add(TreeView1.Items.Item[i].Text)

Добавлено: 07 мар 2006, 13:53
Лелик_1044
угу спасибо вечером проверю код напишу ответ...