Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Procesar VirtaulStringTree

Sigo a vueltas con este elemento. Me parece estupendo, pero me está costando verdaderos sudores trabajar con él. Siguiendo con el mismo "bicho" de mi anterior hilo, tengo este árbol:

Para procesar los nodos seleccionados uso este código para rellenar un TListView de otro formulario:
Código:
TListItem *pItem;
PVirtualNode Nodo1, Nodo2;
Nodo1 = Mesas->GetFirst();
while (Nodo1 != NULL)
{
     if (Mesas->CheckState[Nodo1] > csUncheckedPressed)
     {
          Nodo2 = Mesas->GetNext(Nodo1);
          while (Nodo2 != NULL && Nodo2->Parent == Nodo1)
          {
               if (Mesas->CheckState[Nodo2] > csUncheckedPressed)
               {
                    pItem = fEscrutinio->LisMesas->Items->Add();
                    pItem->Caption = ((PTreeEle)Mesas->GetNodeData(Nodo1))->Municipio;
                    pItem->SubItems->Add(((PTreeEle)Mesas->GetNodeData(Nodo2))->Municipio);
                    pItem->SubItems->Add(FormatFloat("#,###", ((PTreeEle)Mesas->GetNodeData(Nodo2))->Censo));
                    pItem->SubItems->Add(FormatFloat("#,###", ((PTreeEle)Mesas->GetNodeData(Nodo2))->Votos));
                    pItem->SubItems->Add(((PTreeEle)Mesas->GetNodeData(Nodo2))->CodMes);
               }
               Nodo2 = Mesas->GetNextSibling(Nodo2);
          }
     }
     Nodo1 = Mesas->GetNextSibling(Nodo1);
}
Tal cual está el código al pasar el primer nodo (ABENOJAR) se mete por el if, pero si el nodo no está desplegado el segundo if se lo salta, y en este caso estarían marcados todos los nodos de niveles inferiores. He intentado desplegar el nodo con Mesas->Expanded[Nodo1] = true antes de asignar Nodo2, pero al hacerlo se desmarca todo el nodo. ¿Podéis ayudarme o darme una pista de por donde debo tirar?
Responder Con Cita
  #2  
Antiguo 29-11-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Aquí tienes ejemplos de virtualtreeview que pueden servirte, aunque es object pascal, no c++
Responder Con Cita
  #3  
Antiguo 02-12-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Aquí tienes ejemplos de virtualtreeview que pueden servirte, aunque es object pascal, no c++
Muchas gracias. Ahora mismo lo estudio.
Responder Con Cita
  #4  
Antiguo 04-12-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Estuve viendo el código del enlace. Muy interesante. Probándolo me he dado cuenta de una cosa: una vez que el nodo se ha expandido el bucle qe puse en mi mensaje funciona a la perfección aunque luego se contraigan todos los nodos; es como si hasta que no se expande totalmente no supiera lo que hay. Lo que no encuentro es como expandir todo el árbol; sé que lo hice pero no recuerdo como.
Responder Con Cita
  #5  
Antiguo 04-12-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Red face

¡NO HE DICHO NADA! Me estaba empeñando en poner ExpandFull cuando el procedimiento es justo al revés: FullExpand.
Responder Con Cita
  #6  
Antiguo 04-12-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
vstArbol.FullExpand;
vstArbol.FullCollapse;
Responder Con Cita
  #7  
Antiguo 04-12-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
vstArbol.FullExpand;
vstArbol.FullCollapse;
Gracias. Y ya he comprobado que si una vez cargado el árbol se ejecutan ambos al procesar los nodos lo hace bien.
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
Forma de procesar Pagos feliz-58 Varios 0 03-10-2017 05:14:12
Procesar mensajes de un hilo jars OOP 1 15-12-2012 20:24:26
Procesar Archivos XML en Delphi 7 nlsgarcia Varios 8 20-10-2012 20:56:08
Procesar mensajes/Esperar Anel Hernandez Varios 1 20-01-2012 07:31:34
Procesar video andressanchez Gráficos 3 14-01-2012 19:29:04


La franja horaria es GMT +2. Ahora son las 04:49:16.


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