FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cargar un TTreeView
Me estoy volviendo un poco loco para cargar un TTreView. El objeto en concreto ya lo conocéis de otro hilo; es este:
para ello uso este query: Código PHP:
El orden del árbol, como se ve en la imagen es Partido > Comarca > Municipio. Y digo que me estoy volviendo un poco loco porque todavía no he dado en como hace la carga del Tree sin tener que ejecutra tres querys distintos o meter un montón de código, como tengo ahora, con condiciones y variables auxiliares. Por otra parte me está ocurriendo algo que me está dejando perplejo. Ahora cargo el Tree con este bucle a partir de ese query anterior: Código PHP:
Código PHP:
|
#2
|
||||
|
||||
Me está ocurriendo, además, otra cosa. Cuando cargo el TreeView (por ejemplo el primer registro del query) el valor que se asigna en ese newNodo->Codigo = fMenu->Query->Fields->FieldByNumber(4)->AsInteger es correcto (en ese caso es 1217). Sin embargo cuando voy a rescatarlo con esto:
Código PHP:
|
#3
|
|||
|
|||
No es mi fuerte el C++. Pero con una estructura similar a esta de delphi debe de funcionarte
|
#4
|
||||
|
||||
Gracias por la sugerencia bucanero. Entiendo el sentido del código que me pones en Delphi, pero me pierdo al pasarlo a Builder. Supongo que la instrucción repeat será el equivalente al Next() de Builder, para que avance al siguiente registro de la tabla o query. Pero si es así hay algo en el código que no me cuadra: Si después de asignar cada nivel del TreeView avanzas un registro dejo sin leer parte de cada fila del query. O estoy interpretando mal la idea.
|
#5
|
||||
|
||||
Hola.
El resultado que buscas ¿ es algo así ? : Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
||||
|
||||
Hola.
¡ Donde tengo la cabeza ! olvidé el código del ejemplo Código PHP:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Funciona perfecto. Además, y no sé por qué, el problema que tenía al rescatar el valor del objeto asociado al nodo se ha resuelto el solito. Maravillas de la informática.
Gracias por el esfuerzo. Dándole vueltas anoche en casa llegue a una conclusión similar a la tuya, pero el código de ecfisa es mucho más sencillo. |
#8
|
|||
|
|||
Cita:
Código:
Query->First(); while ( !fMenu->Query->Eof ) { //inserta el nodo del primer campo Nodo[0] = LisMun->Items->Add(Nil, fMenu->Query->Fields->FieldByNumber(1)->AsString); do { //inserta el nodo del segundo campo Nodo[1] = LisMun->Items->Add(Nodo[0], fMenu->Query->Fields->FieldByNumber(2)->AsString); do { //inserta el nodo del tercer campo newNodo = new TMyRec; newNodo->Codigo = fMenu->Query->Fields->FieldByNumber(4)->AsInteger; Nodo[2] = LisMun->Items->AddChildObject(Nodo[1], fMenu->Query->Fields->FieldByNumber(3)->AsString, newNodo); // avanza en la consulta fMenu->Query->Next(); // repite el bucle hasta final de la consulta o // hasta que cambie el segundo campo de la tabla } while ( !fMenu->Query->Eof && (Nodo[2]->Text == fMenu->Query->Fields->FieldByNumber(2)->AsString)); // repite el bucle hasta final de la consulta o // hasta que cambie el primer campo de la tabla } while ( !fMenu->Query->Eof && (Nodo[1]->Text == fMenu->Query->Fields->FieldByNumber(1)->AsString)); } |
#9
|
||||
|
||||
Gracias a los dos por vuestras sugrencias. Voy a probarlas ahora mismo.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TTreeView en un objeto | cepriego | OOP | 2 | 18-02-2008 17:19:22 |
Componente TTreeView | zvf | OOP | 4 | 05-08-2006 17:42:46 |
ScrollBar en TTreeView | jzk | OOP | 0 | 08-03-2005 18:56:15 |
Novato con TTreeView | MaGNa | OOP | 2 | 03-11-2004 13:02:25 |
Cargar un TTreeView desde una tabla | hibero | OOP | 8 | 15-07-2004 19:43:33 |
|