1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

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

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

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

  1. Raschet5

    Raschet5 Гость

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

    Код:
    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
    Нашёл другое решение :

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

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