C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Добавление/удаление узлов в TTreeView, коряво как-то получается
Dimon.Ru
Отправлено: 15.01.2005, 11:57


Станционный диспетчер

Группа: Участник
Сообщений: 92



Здрасьте smile.gif
мне надо добавлять и удалять узлы из TTreeView.
но получается как-то коряво....
Добавлять мне надо перед или после выделенного узла, а удалать — выделенный.
Добавляю так:
CODE
ModulesTreeView->Items->Insert(ModulesTreeView->Items->Item[ModulesTreeView->Selected->Index],"Название  узла");

Удаляю так:
CODE
ModulesTreeView->Items->Delete(ModulesTreeView->Items->Item[ModulesTreeView->Selected->Index]);


в принципе — работает, но не могу добавить узел третьего уровня (испрользую для этого AddChild, но не помогает — добавляются только узлы второго уровня)

при удалении — удаляются только узлы, расположенные на первом уровне, дочерние узлы тоже не удаляются (только все вместе)

как быть? подскажите. примеров в справке не нашел.
спасибо!
full_lamer
Отправлено: 16.01.2005, 09:33


Машинист паровоза

Группа: Участник
Сообщений: 225



добавлять узлы проще используя AddChildObject.
Dimon.Ru
Отправлено: 16.01.2005, 11:45


Станционный диспетчер

Группа: Участник
Сообщений: 92



Thanx!
a mo*no nebol'shoy primerchik?
full_lamer
Отправлено: 16.01.2005, 12:32


Машинист паровоза

Группа: Участник
Сообщений: 225



CODE
TreeClients->Items->AddChildObject (Node, IBQuery->FieldByName ("LNAME")->AsString.Trim (), pRecData)->SelectedIndex = 3;
Немного неуклюжий код — но для примера сойдет. Сдесь я добавляю к узлу Node потомка — для имени которого использую колонку из таблицы БД "lname", и еще записываю ссылку на набор данных которые могут понадобиться при обращении к этому узлу — в данном случае были идентификатор группы и надгруппы.

Вернуться в Вопросы программирования в C++Builder