Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2011, 17:27   #1
Dogmat
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 76
По умолчанию TTreeView и динамическое создание TTreeNode

Ребята, подскажите пожалуйста. Появилась нужда динамически создавать TTreeNode и подключать их к TTreeView. Но ничего подходящего я не нашел. У коллекции нодов TTreeNodes есть несколько методов добавления и вставки, но, насколько я понял, эти методы сами создают экземпляры TTreeNode, параметры у них у всех одинаковые, вот пример такого метода:

TTreeNode* __fastcall AddChild(TTreeNode* Node, const System::AnsiString S);

У самого TTreeNode, есть метод MoveTo, позволяющий делать, то что мне нужно:

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

Однако, во время выполнения MoveTo выскакивает AccessViolation. К тому же, не понятно, как добавлять ноды в коллекцию TTreeNodes, если она пуста, без использования методов Add и Insert.

Вот маленький пример:

Код:
    TTreeView *treeView = new TTreeView(MainForm);
    treeView->Parent = MainForm;
    treeView->Align = alTop;

    TTreeNodes *items = TreeView->Items;

//  пускай первый нод добавим с использование Add
    TTreeNode *defNode = items->Add(NULL, "Default TopNode");
    
    TTreeNode *someNode = new TTreeNode(items);
//  здесь выскочит AccessViolation
    someNode->MoveTo(defNode, naAddChild);
Все бы ничего. Можно каждый элемент добавлять Add. Однако для меня важно добавлять элементы созданные мной оператором new. Я предполагаю унаследовать класс TTreeNodeExp от TTreeNode, а в функции все так же передавать указатель на TTreeNode используя восходящее приведение.
TTreeNode имеет массу readonly свойств, среди них есть, например, ItemID == NULL после создания, возможно на него ругается.
Dogmat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Undeclared identifier: 'TTreeView'('ttreenode') boshki Помощь студентам 9 12.05.2011 18:27
Динамическое создание событий Fandaret Общие вопросы Delphi 4 14.05.2009 04:20
Динамическое создание paintbox-a. blackstersl Общие вопросы Delphi 1 12.05.2009 19:17
Динамическое создание формы Rifler Общие вопросы Delphi 6 11.09.2008 20:50
TTreeNode GAGARIN-NEW Помощь студентам 2 11.02.2008 15:13