Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Padre de un nodo en VirtualTreeView (https://www.clubdelphi.com/foros/showthread.php?t=93971)

Angel.Matilla 30-05-2019 13:29:17

Padre de un nodo en VirtualTreeView
 
Tengo un formulario con un VTV que cargo a partir de un query así:
Código:

AnsiString cAux;
PTreeEle DatEle;
PVirtualNode Nodo1, Nodo2;

Mesas->NodeDataSize =  sizeof(TTreeElec);
Mesas->BeginUpdate();
Mesas->Clear();

cAux = "";
for (; !Query->Eof; Query->Next())
{
    if (cAux != Query->FieldByName("Nombre")->AsString)
    {
          Nodo1            = Mesas->AddChild(NULL);
          DatEle            = (PTreeEle)Mesas->GetNodeData(Nodo1);
          DatEle->Municipio = Query->FieldByName("Nombre")->AsString;
          cAux              = Query->FieldByName("Nombre")->AsString;
    }

    Nodo2            = Mesas->AddChild(Nodo1);
    DatEle            = (PTreeEle)Mesas->GetNodeData(Nodo2);
    DatEle->Municipio = FormatFloat("000 ", Query->FieldByName("Distrito")->AsInteger) +
                        FormatFloat("000 ", Query->FieldByName("Seccion")->AsInteger) +
                        Query->FieldByName("Mesa")->AsString;;
    DatEle->Votos    = Query->FieldByName("Votos")->AsInteger;
    DatEle->Codigo    = Query->FieldByName("Codigo")->AsInteger;
}
Mesas->EndUpdate();

Pero cuando he seleccionado un nodo hijo, ¿cómo hago para averiguar el valor del nodo padre? He estado mirando por el foro y no me aclaro con las respuestas que he visto.

Casimiro Notevi 30-05-2019 15:17:48

Creo que con GetPreviousLevel

Angel.Matilla 30-05-2019 18:58:59

Cita:

Empezado por Casimiro Notevi (Mensaje 532254)
Creo que con GetPreviousLevel

Código:

PTreeEle tDato;
tDato = (PTreeEle)Mesas->GetPreviousLevel(Mesas->FocusedNode);

No. Me dice que 'GetPreviousLevel' is not a member of 'TVirtualStringTree'.
He estado mirando por otros lados, evidentemente, y encontré esta estructura:
Código:

PTreeEle tDato;
tDato = (PTreeEle)Mesas->GetNodeData(Mesas->FocusedNode->Parent);

¡Y al final es la que me ha dado la solución! ¡Después de una mañana chocando con el problema!

Casimiro Notevi 30-05-2019 19:10:28

Cita:

Empezado por Angel.Matilla (Mensaje 532256)
Me dice que 'GetPreviousLevel' is not a member of 'TVirtualStringTree'.

¿Pero no era un VirtualTreeView?

Angel.Matilla 30-05-2019 19:23:52

Cita:

Empezado por Casimiro Notevi (Mensaje 532257)
¿Pero no era un VirtualTreeView?

Sí, pero es el mensaje de error que me da el compilador.


La franja horaria es GMT +2. Ahora son las 18:13:01.

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