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 Buscar Temas de Hoy Marcar Foros Como Leídos

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.105
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.105
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 15:53:09.


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