Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo Hace 4 Semanas
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 16
Poder: 0
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

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;

}
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 23:48:37.


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