![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Claro, por eso voy avanzando por el árbol. Al llegar a un nodo que no tiene hijos y está seleccionado es cuando ejecuto el query, pero es que cuando llega a ese nodo sin hijos no sé por qué quita la marca de selección sin que yo se lo indique. Es lo que no entiendo.
|
|
#2
|
||||
|
||||
|
Creo que estás diciendo que borras primero "Ordinario", luego "Desconocida" y finalmente "Tomelloso", que no puedes borrarlo.
Y lo que comento es que deberías, creo, borrar en orden inverso, primero "Tomelloso", luego "Desconocida" y finalmente "Ordinario". Si es que he entendido bien.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#3
|
||||
|
||||
|
No. Siento haberme explicado mal. En cada nodo final (Tomelloso en este caso) están todos los valores: fecha, tipo de emisión (Ordinario), forma de pago (Desconocida) y código de la población (Junta). Por eso voy buscando los nodos que no tiene hijos porque sé que en ellos están todos los valores que busco; fíjate en la condición que hay dentro del bucle:
Código:
if (!Lista->HasChildren[Nodo] && Lista->CheckState[Nodo] > csUncheckedPressed) Cita:
|
|
#4
|
||||
|
||||
|
Prueba a ver:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#5
|
||||
|
||||
|
Gracias por la sugerencia pero no funciona.
Esto es lo que está pasando y me tiene completamente descolocado: ![]() Como veis las tres primeras veces va tomando los valores correctos: 01/10/2022, Ordinarios, Banco (aunque ponía Desconocida este es el valor correcto). En los tres casos aparece HasChildren como true porque en los tres casos hay un hijo y CheckState como csCheckedNormal por que está seleccionado el nodo completo. Pero en cuanto hace Lista->GetNext(Nodo) para tomar el valor TOMELLOSO, sin que el código haga nada CheckState se pone como csUncheckedNormal y, claro está, no se ejecuta el query. |
|
#6
|
||||
|
||||
|
Lo curioso es lo que indicaba en otro mensaje: si dejo desplegado el nodo completo antes de empezar a recorrer el árbol si se ejecuta bien el código y esto todavía me desconcierta más.
|
|
#7
|
||||
|
||||
|
Parece que encontré la solución. En lugar de preguntar si el nodo tiene hijos, pregunto cuantos hijos tiene:
Nodo = Lista->GetFirst(); Código:
while (Nodo != NULL)
{
if (Nodo->ChildCount == 0 && Lista->CheckState[Nodo] > csUncheckedPressed)
{
[...]
}
Nodo1 = Lista->GetNext(Nodo1);
}
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Comportamiento extraño de TVirtualStringTree | Angel.Matilla | C++ Builder | 4 | 08-08-2022 10:33:30 |
| Un comportamiento extraño. | TiammatMX | Varios | 5 | 03-09-2013 22:54:07 |
| Extraño comportamiento de ADO | r1d2m3 | Conexión con bases de datos | 3 | 12-12-2009 19:08:32 |
| Comportamiento extraño del TPageControl | Chris | OOP | 4 | 02-04-2009 21:16:09 |
| Extraño comportamiento de Firebird 2.0 | TrUnkS | Firebird e Interbase | 4 | 06-01-2007 23:05:57 |
|