PDA

Ver la Versión Completa : TreeView saber si esta extendido o plegado


ascrnet
21-12-2007, 02:12:51
hola a todos

he buscado en este foro la funcion para saber si un treeview esta extendido o plegado.

lo unico que yo se extendido todo el arbol TreeView1.FullExpand; y plegado con TreeView1.FullCollapse;

pero no se como preguntar en que estado esta el arbol extendido o plegado?

saludos

rruz
21-12-2007, 06:20:10
Hola, en realidad lo que debes hacer es consultar por un nodo en particular del treeview ya que estos son los que se expanden, si asumimos que tienes un nodo root en tu arbol deberias usar algo asi.


if TreeView1.Items.GetFirstNode.Expanded then
ShowMessage('expandido')
else
ShowMessage('no expandido');


por un nodo en particular

k:=0;//Indice de tu nodo
if TreeView1.Items.Item[k].Expanded then
ShowMessage('expandido')
else
ShowMessage('no expandido');


Saludos

ascrnet
21-12-2007, 15:30:39
Hola, en realidad lo que debes hacer es consultar por un nodo en particular del treeview ya que estos son los que se expanden, si asumimos que tienes un nodo root en tu arbol deberias usar algo asi.


if TreeView1.Items.GetFirstNode.Expanded then
ShowMessage('expandido')
else
ShowMessage('no expandido');


por un nodo en particular

k:=0;//Indice de tu nodo
if TreeView1.Items.Item[k].Expanded then
ShowMessage('expandido')
else
ShowMessage('no expandido');


Saludos

mmm, tengo varios root en mi arbol, yo pensaba que delphi tenia algun metodo para saber si todo el arbol esta extendido o plegado. igual gracias por sus codigos quisas mas adelante los use :D
lo que voy hacer por el momento una variable treesw de tipo booleana para controlar si el treeview esta extendido o plegado.

saludos.

rruz
21-12-2007, 18:51:19
Puedes usar este codigo para determinar sin al menos un nodo esta expandido o no en el arbol.



function ArbolExpandido(Arbol : TTreeView): Boolean;
var
Nodo: TTreeNode;
begin
Result := false;
if Arbol.Items.Count = 0 then Exit;
Nodo := Arbol.Items[0];
while Nodo <> nil do
begin
Result := Nodo.Expanded;
if Result then Break;
Nodo := Nodo.GetNext;
end;
end;