1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

Компонента Ttreeview. Onexpanded(...) Не работает так как я думаю, под

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем Raschet5, 2 июн 2010.

  1. Raschet5

    Raschet5 Гость

    Репутация:
    0
    Кратко : Нужно чтобы после раскрытия первого узла, все вложенные открывались автоматом. Прочёл умную работу по TTreeView из интернета и написал :

    Код (C++):
    void __fastcall TForm1::Tree2Expanded(TObject *Sender, TTreeNode *Node)
    {
    //      Node->Expand(true);
    TTreeNode* N;
    N = Node;
    while(N->HasChildren)
    {
    if (N->Expanded == false)
    N->Expanded = true;
    N = N->getFirstChild();
    };
    }
    При выполнении выдаёт ошибку StackOverflow.
    Троссирую и вижу, как только программа попадает на N->Expanded = true; после этого вместо следующей строки уходит на начало процедуры. Видимо, при выполнении этой строки происходит рекурсивный вызов процедуры. А мне то всего лишь и надо, чтобы при раскрытии первого элемента, все остальные вложенные разворачивались до последнего листа. А остальное дерево было свёрнуто. Видимо туплю, но мысли чего-то кончились. (С деревом ранее не работал). Ну и вобщем хелп. Где я накосячил?
     
  2. Raschet5

    Raschet5 Гость

    Репутация:
    0
    Есть возможность раскрывать всё дерево. Но мне нужно только выбранную ветку.
    Есть возможность работать сразу по всей вложенной ветке. Это первое что сделал. Это как раз таки Node->Expand(true); Но результат тот же. Переполнение буфера.

    Как включать и отключать реакцию на событие?
     
  3. Raschet5

    Raschet5 Гость

    Репутация:
    0
    Спасибо. Попробую.
     
  4. Raschet5

    Raschet5 Гость

    Репутация:
    0
    Нашёл другое решение :

    Код (C++):
     void __fastcall TForm1::Tree2Click(TObject *Sender)
    {
    TTreeNode *Node;
    Node = Tree2->Selected;
    if (Node->Expanded == true)
    Node->Expand(true);
    }
     
Загрузка...
Похожие Темы - Компонента Ttreeview Onexpanded(
  1. JohnLemon
    Ответов:
    1
    Просмотров:
    623
  2. bang
    Ответов:
    0
    Просмотров:
    1.368
  3. V88
    Ответов:
    2
    Просмотров:
    3.685
  4. neo7777
    Ответов:
    1
    Просмотров:
    3.043
  5. Normann
    Ответов:
    5
    Просмотров:
    3.835

Поделиться этой страницей