Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Localizar nodo en un arbol (https://www.clubdelphi.com/foros/showthread.php?t=16757)

bbjb 10-12-2004 12:40:24

Localizar nodo en un arbol
 
hola,

Tengo un treeview cargado y sin expandir, y quiero buscar un nodo, posicionarme sobre él y expandir el arbol, pero expandirlo sólo sobre esa rama, es decir no quiero que se me expanda todos los niveles del árbol sino sólo aquel que tengo seleccionado.

He buscado en los foros de delphi y he encontrado un hilo donde explicaban el siguiente procedimiento.

Código:

var
  i:Integer;
  n:TTreeNode;
begin
  // Recorrer los nodos del árbol
  for i:=0 to (TreeView1.Items.Count - 1) do begin
    // Lo ha encontrado?
    if (TreeView1.items[i].Text = 'NomdeDeMiNodo') then begin
      n := TreeView1.items[i];
      // Expandir
      n.Expand(True);
      // Seleccionar
      n.Selected := True;
      // Pasar el foco al tree
      TreeView1.RowSelect := True;
      TreeView1.SetFocus;
    end;
  end;

Lo he seguido a rajatabla y el árbol no se expande, queda contraido y cuando empiezo a abrirlo veo como si se situa en el nodo buscado, pero para visualizarlo tengo que ir abriendo yo los niveles superiores de este

¿Hay algún fallo en el código o es el comportamiento normal????.

roman 10-12-2004 17:08:02

Prueba este método:

Código Delphi [-]
var
  Nodo: TTreeNode;
  I: Integer;

begin
  for I := 0 to TreeView1.Items.Count - 1 do
  begin
    Nodo := TreeView1.Items[i];

    if Nodo.Text = 'Mi nodo' then
    begin
      Nodo.Selected := true;
      Nodo.MakeVisible;

      break;
    end;
  end;
end;

// Saludos


La franja horaria es GMT +2. Ahora son las 21:15:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi