Ver Mensaje Individual
  #1  
Antiguo 24-11-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Recorrer TVirtualStringTree

Buenas a todos. Ya sé que soy un poco pesado, pero es que no encuentro el camino. Tengo este TVirtualStringTree:

y quiero comprobar los nodos seleccionados. Para ello estoy usando este código:
Código:
void __fastcall TfSelDocs::AlbaranesChecked(TBaseVirtualTree *Sender, PVirtualNode Node)
{
     int nHay = 0;
     slEmisor->Clear();

     if (Albaranes->CheckState[Node] == csCheckedNormal || Albaranes->CheckState[Node] == csCheckedPressed)
     {
          Nodo1 = Albaranes->GetFirst();
          Nodo2 = NULL;

          while (Nodo1 != NULL && Nodo2 == NULL)
          {
               if ((Albaranes->CheckState[Nodo1] == csCheckedNormal || Albaranes->CheckState[Nodo1] == csCheckedPressed) && !Albaranes->HasChildren[Nodo1])
               {
                    nHay ++;
                    Nodo2 = Nodo1;
               }
               Nodo1 = Albaranes->GetNext(Nodo1);
          }
     }
}
pero me he dado cuenta que de esta forma en un caso como el de la imagen siempre me cuenta un nodo; cuando hay dos marcados sólo la primera vez que recorre el bucle entra en él. ¿Qué estoy haciendo mal?
Responder Con Cita