Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

[Solucionado] Ordenar un TreeView a partir de un subnodo

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: [Solucionado] Ordenar un TreeView a partir de un subnodo Responder citando

Hola!
Estoy intentando ordenar un TreeView a partir de un subnodo. Es decir, no quiero ordenar todo el treeview sino los subnodos de un nodo determinado.
Alguna idea?

saludos
diego


Ultima edición por el diego el Mar 20 Jul, 2004 10:44 am, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola Diego:

Se me ocurren varias maneras de hacerlo, una de ellas es poner alguna marca a cada elemento/nodo ordenable. Por ejemplo si no necesitamos la propiedad StateIndex podríamos usar esta para marcar con un valor de 1 los elementos que queremos que se ordenen. En caso de tener imágenes de estado podríamos poner la marca usando "Data" o cualquiera de los otros índices de imagen...

Un pequeño ejemplo:

- Ponemos el siguiente código en el evento OnCompare del TreeView:
(esto comprobara si el nodo tiene una marca o no para ordenarlo)
Código:
Compare = (Node1->StateIndex==1 && Node2->StateIndex==1)
    ? CompareText(Node1->Text, Node2->Text) : 0;

- Ahora rellenamos el TreeView:
Código:
// Creamos un nodo y varios subnodos que no se ordenaran
TTreeNode* nodo1 = TreeView1->Items->Add(0, "Nodo1");
TreeView1->Items->AddChild(nodo1, "Bbbb");
TreeView1->Items->AddChild(nodo1, "Cccc");
TreeView1->Items->AddChild(nodo1, "Aaaa");

// Ahora creamos un nodo y marcamos los subnodos para que se ordenen
TTreeNode* nodo2 = TreeView1->Items->Add(0, "Nodo2");
TreeView1->Items->AddChild(nodo2, "Bbbb")->StateIndex = 1;
TreeView1->Items->AddChild(nodo2, "Cccc")->StateIndex = 1;
TreeView1->Items->AddChild(nodo2, "Aaaa")->StateIndex = 1;

TreeView1->AlphaSort();

El resultado de esto es que solo se ordenaran los subnodos de "Nodo2" que son los únicos que están marcados.

Espero que me hayas entendido bien. Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola Leo! Disculpa la demora, me tomé unos dias.
Funciono a la perfeccion!
Gracias nuevamente!

saludos
diego
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.