Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-07-2015
Rolando Glez Rolando Glez is offline
Miembro
 
Registrado: nov 2004
Ubicación: Havana
Posts: 62
Poder: 20
Rolando Glez Va por buen camino
SIncromizar TTreeview con un Listbox

Hola a todos tal vez alguien me pueda tirar un cabo y me ayude a orientarme en sincronizar un TTreeview con un Listbox,el problema es que segun veo el TTreeview
muestra todo el arbol, algo que no deseo, lo que necesito es que en un Listbox solo se muestren los nodos siblibling de un nivel dado y a travez de botones de navegacion mover el puntero en el Treeview referenciado desde el Listbox es decir cuando hago click sobre un item del Listbox automaticamente se actualice el puntero del cursor en el TTreview cuestion que si navego con el boton de navegacion navegue sobre el nodo seleccionado y me vuelva a mostrar todos los nodos sibling del proximo nivel, este comportamiento debe hacerlo tanto si navego hacia delante desde un nodo determinado asi como hacia atras hacia el root del arbol, el TTreview seria usado para que contega el arbol pero no con idea de mostrarlo a no ser que alguien me diga como hacer esto solo con el treeView saludos espero su ayuda
Responder Con Cita
  #2  
Antiguo 13-07-2015
Rolando Glez Rolando Glez is offline
Miembro
 
Registrado: nov 2004
Ubicación: Havana
Posts: 62
Poder: 20
Rolando Glez Va por buen camino
He solucionado la sincronizacion

Hola ,con la ayuda de un amigo se ha resuelto el algoristmo para sincronizar ambos componentes aqui le muestro :
Código Delphi [-]
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
  //navegacion hacia el root del arbol
  if nodocursor<>root then
  begin
    nodocursor:=nodocursor.GetPrev;
    //buscando el primer nodo del level
    while nodocursor.getPrevSibling<>nil do
    nodocursor:=nodocursor.getPrevSibling;
    if not odd(NodoCursor.Level) then
      Label1.caption:='White Moves'
    else
      Label1.Caption:='Black Moves';
    llena_listbox(nodoCursor);//display nodos
  end;
end;

procedure TForm1.llena_listbox(n: TTreeNode);
var
  n1: TTreeNode;
  plyb:string;
begin 
  ListBox1.Clear;
  nodoCursor := n;
  n1 := n;
  //add todos los nodos sibling al listbox
  Repeat
    ListBox1.Items.Add(n1.text);
    n1 := n1.getNextSibling;
  Until n1 = nil;
end; 

procedure TForm1.ListBox1Click(Sender: TObject); 
var
  n3:Ttreenode;
begin 
  n3:=nodocursor.getnext;
  if n3.Text<>'End' then //ultimo nodo de la rama
  begin
    repeat
      //buscando item seleccionado del listbox en nodos de arbol
      if ListBox1.Items[ListBox1.ItemIndex] = nodoCursor.Text then
        break;
      nodoCursor := nodoCursor.getNextSibling;
    until nodoCursor = nil;
    //actualizando el puntero al arbol 
    nodoCursor := nodoCursor.getFirstChild;
    if not odd(NodoCursor.Level) then
      Label1.caption:='White Moves'
    else
      Label1.Caption:='Black Moves';
    llena_listbox(nodoCursor); //display nodos
  end
end;

Última edición por ecfisa fecha: 13-07-2015 a las 21:16:25. Razón: identación
Responder Con Cita
  #3  
Antiguo 13-07-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Rolando Glez.

Gracias por compartir la solución

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Propiedades en listbox - Listbox vs TGrid otras opciones vicens22 Desarrollo en Delphi para Android 6 13-10-2014 07:47:28
TTreeView en un objeto cepriego OOP 2 18-02-2008 17:19:22
agregar y/o eliminar items de un listbox a partir de otro listbox Goyo PHP 2 27-09-2007 16:46:30
Impresión TTreeView tonytzr OOP 1 15-06-2007 12:32:55
Seleccion en tTreeView Investment OOP 2 02-07-2004 09:36:32


La franja horaria es GMT +2. Ahora son las 08:04:00.


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
Copyright 1996-2007 Club Delphi