Как автоматически развернуть все узлы TTreeView?
Я хочу развернуть дерево в основной форме при запуске приложения. Как я могу это сделать? Я не могу найти соответствующее свойство. C++ builder 2009.
3 ответов
при добавлении treenode сделайте его расширенное свойство true
вы найдете свойство для объекта treeNode, установите его yo true перед добавлением в список узлов.
а также вы можете найти метод для treeView под названием ExpandAll
Привет
попробуйте этот код
//this will expand all nodes of Level and their parents
procedure ExpandTree(Tree: TTreeView; Level: integer);
procedure ExpandParents(Node: TTreeNode);
var
aNode : TTreeNode;
begin
aNode := Node.Parent;
while aNode <> nil do begin
if not aNode.Expanded then
aNode.Expand(false);
aNode := aNode.Parent;
end;
end;
var
aNode : TTreeNode;
begin
if Tree.Items.Count > 0 then begin
aNode := Tree.Items[0];
while aNode <> nil do begin
if aNode.Level = Level then begin
aNode.Expand(false);
ExpandParents(aNode);
end;
aNode := aNode.GetNext;
end;
end;
end;
//this will expand the Node and it's parents
procedure ExpandNode(Node: TTreeNode);
var
aNode : TTreeNode;
begin
Node.Expand(false);
aNode := Node.Parent;
while aNode <> nil do begin
if not aNode.Expanded then
aNode.Expand(false);
aNode := aNode.Parent;
end;
end;
и видим ссылку http://www.delphipages.com/forum/showthread.php?t=159148
Привет
Существует несколько способов сделать это. Проще всего было бы
TreeView1.FullExpand;
как в принятом ответе-альтернативно
if TreeView1.items.GetFirstNode <> nil then
TreeView1.items.GetFirstNode.Expand(True);
или
if TreeView1.items[0] <> nil then
TreeView1.items[0].Expand(True);
метод Expand на TTreeNode полезен, если вы хотите полностью развернуть из определенного узла, который не является корневым узлом.