• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Raschet5
  • Дата начала
R

Raschet5

Кратко : Нужно чтобы после раскрытия первого узла, все вложенные открывались автоматом. Прочёл умную работу по 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; после этого вместо следующей строки уходит на начало процедуры. Видимо, при выполнении этой строки происходит рекурсивный вызов процедуры. А мне то всего лишь и надо, чтобы при раскрытии первого элемента, все остальные вложенные разворачивались до последнего листа. А остальное дерево было свёрнуто. Видимо туплю, но мысли чего-то кончились. (С деревом ранее не работал). Ну и вобщем хелп. Где я накосячил?
 
R

Raschet5

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

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

Raschet5

Нашёл другое решение :

C++:
 void __fastcall TForm1::Tree2Click(TObject *Sender)
{
TTreeNode *Node;
Node = Tree2->Selected;
if (Node->Expanded == true)
Node->Expand(true);
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!