FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Tip: a vueltas con los TreeView
Hola, os pongo un par de cosas que he ido viendo sobre los TreeView (que tienen un poco de mandanga los jodios)
1ª cosa) Un TreeView tiene un nodo ROOT (raiz) que es el principal y luego Sub-Nodos si queremos añadir un nodo RAIZ ROOT lo haremos asi en C++ Builder Código:
/////// Suponiendo que tengamos un EditBox llamado Edit_Categoria ///////////////////////////////////////////////////////////////////////////////// TreeView1->Items->AddChild(NULL, Edit_Categoria->Text); //// Con esta linea guardamos la estructura del TreeView en un archivo para mas tarde si queremos "rehacer el TreeView" ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// TreeView1->SaveToFile("treeview_data.txt"); 2ª cosa) si vamos a crear SubNodos, lo haremos sabiendo de que nodo parte como raiz, Código:
TTreeNode *Node1; Node1 = TreeView1->Selected; //Usamos el Nodo que tengamos seleccionado como Base TreeView1->Items->AddChild(Node1, Edit_Categoria->Text); //y le añadimos el nombre que tengamos en el supuesto EditBox para ello TreeView1->SaveToFile("treeview_data.txt"); Finalmente si lo que queremos es borrar una categoria o sub-nodo lo haremos asi: (yo lo que hice es crear un button que es "Eliminar Categoria" que cuando cliqueas en el TreeView borra lo que has cliqueado en el arbol este codigo lo coloque en el OnMouseDown del Treeview ayudado de una variable global bool llamada FLAG_DELETE_CAT que es la que se activa cuando va a borrar algo del TreeView (para que no borre cuando pulsemos en el TreeView solo activandola cuando pulsamos el boton de borrar Categoria Código:
void __fastcall TForm1::TreeView1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { THitTests HT; if (FLAG_DELETE_CAT == true && Sender->ClassNameIs("TTreeView")) { TTreeView *pTV = dynamic_cast<TTreeView *>(Sender); HT = pTV->GetHitTestInfoAt(X,Y); if (HT.Contains(htOnItem)) { if(Application->MessageBox(TreeView1->Selected->Text.w_str(), L"Esta seguro que quiere borrar la categoria", MB_OKCANCEL) == IDOK) { if(Application->MessageBox(L"Notas de la Categoria", L"Desea que se borren tambien las NOTAS asociadas a esa Categoria?", MB_OKCANCEL) == IDOK) { pTV->Items->Delete(pTV->GetNodeAt(X,Y)); TreeView1->SaveToFile("treeview_data.txt"); //Añadir aqui la funcion para borrar las notas (esto son cosas mias de mi programa, /////////////////////////////////////////////// } else { //No quiere borrar las notas asociadas a la Categoria FLAG_DELETE_CAT = false; return; } } else { //No quiere borrar la categoria... FLAG_DELETE_CAT = false; return; } } } FLAG_DELETE_CAT = false; } |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
A vueltas con un query | Angel.Matilla | Firebird e Interbase | 20 | 16-11-2023 10:44:51 |
a vueltas con los servidores de datos | anubis | Varios | 11 | 13-01-2010 09:37:42 |
Dando vueltas con las capas | CHiCoLiTa | Providers | 0 | 24-01-2006 12:09:55 |
Dandolo vueltas a un indice | gario | Oracle | 0 | 17-03-2005 14:04:47 |
|