Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 30/03/2024
navbuoy navbuoy is offline
Miembro
 
Join Date: Mar 2024
Posts: 360
Poder: 3
navbuoy Va por buen camino
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

Code:
  /////// 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,

Code:
 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

Code:
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;

}
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
A vueltas con un query Angel.Matilla Firebird e Interbase 20 16/11/2023 10:44
a vueltas con los servidores de datos anubis Varios 11 13/01/2010 09:37
Dando vueltas con las capas CHiCoLiTa Providers 0 24/01/2006 12:09
Dandolo vueltas a un indice gario Oracle 0 17/03/2005 14:04


All times are GMT +2. The time now is 21:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi