Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-07-2012
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 23
lbidi Va por buen camino
Hola ecfisa, gracias por el codigo. Modifique parte de mi programa con el tuyo, pero sigo sin poder obtener el resultado deseado.

Como podras ver en la imagen que adjunto ( si lo hago bien ), cuando agrego un nodo nuevo al nodo inicial el "nivel" no queda bien. Mi idea es que cada rama siga una numeracion correlativa, y asi dentro de cada rama, para luego volcarla a una bd. Tiene que ser algo dinamico en la cual el usuario pueda crear y modificar nuevas categorias dentro de este catalogo.

Ej:
00 - ARTICULOS
0001 - HOMBRES
000101 - Camisas
000102 - Pantalones
0002 - MUJERES
000201 - Vestidos
0003 - NIÑOS

Cuando agrego nodos nuevos con tu codigo , los "niveles" no quedan correlativos, y no encuentro el "bendito" error !!

Tengo que grabarlos de esta manera, para que la proxima vez que lea la tabla, me arme el arbol de la misma manera que lo tenia previamente, no se si me explico correctamente.

Saludos y mil gracias por tu colaboracion.
Imágenes Adjuntas
Tipo de Archivo: jpg Catalogo.jpg (33,1 KB, 23 visitas)
Responder Con Cita
  #2  
Antiguo 05-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Creo entenderte... probá haciendo:
Código Delphi [-]
procedure TForm1.btnAddNodeClick(Sender: TObject);
var
  nodo: TTreeNode;
begin
  Clase:= TClase.Create;
  ObjLst.Add(Clase);
  Clase.Nivel:= 'Nuevo nivel';
  Clase.Texto:= 'Nuevo texto';
  with tvCatalogo do
  begin
    Clase.Level:= TClase(Selected.Data).Level +
     StringOfChar('0', 2-Length(IntToStr(Selected.Level+1))) + 
       IntToStr(Selected.Count + 1);  
   nodo:= Items.AddChildObject(Selected,Clase.Texto,Clase)
  end;
end;
La propiedad Count de TTreeNode contiene la cantidad de nodos hijos que contiene un TreeNode determinado.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 06-07-2012
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 23
lbidi Va por buen camino
Estimado ecfisa.. Muchisimas gracias por tu codigo y molestia.

Ahora si funciona como pretendia. De lujo.

Con esta ultima pregunta, espero ya terminar este post .

Siguiendo tu codigo, como puedo hacer ahora para recorrer todo el arbol y sus ramas, para guardarlas en una bd ? He tratado viendo algunos posts de este foro, pero no me recorre todo el arbol.

He hecho un for recorriendo todo el arbol, pero me quedan dudas si debo utilizar esa clase o ir creando
nodos para obtener el valor del text y del level que son los que debo grabar.

Gracias nuevamente por tu invalorable ayuda.

Saludos.
Responder Con Cita
  #4  
Antiguo 09-07-2012
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 23
lbidi Va por buen camino
Hola foristas.

Alguien me podria ayudar con el ultimo post que he puesto ?
Necesito grabar el arbol en una bd con los datos de la clase pero no se como recorrerlo.

Muchas gracias.

Saludos
Responder Con Cita
  #5  
Antiguo 10-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Ibidi.

Son muchas las formas en que podes desear guardar esos nodos...

De todos modos te pongo un ejemplo (muy simple) que añade secuencialmente los nodos en un TDataSet:
Código Delphi [-]
procedure TForm1.btAddToDataSetClick(Sender: TObject);
var
  i: Integer;
begin
  TargetDataSet.Open;
  tvCatalogo.Items.GetFirstNode;
  for i := 1 to tvCatalogo.Items.Count - 1 do
  begin
    TargetDataSet.Append;
    with TClase(tvCatalogo.Items[i].Data) do
    begin
      TargetDataSet.FieldByName('Nivel').AsString:= Nivel;
      TargetDataSet.FieldByName('Texto').AsString:= Texto;
      ...
    end;
    TargetDataSet.Next;
  end;
  TargetDataSet.Close;
end;
Espero que al menos sirva como para orientarte un poco.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 10-07-2012 a las 05:52:59.
Responder Con Cita
  #6  
Antiguo 11-07-2012
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 23
lbidi Va por buen camino
Muchas gracias , ecfisa..

Anduvo de maravillas.

Saludos cordiales..

Leo
Responder Con Cita
  #7  
Antiguo 08-08-2012
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 23
lbidi Va por buen camino
Hola foristas.
Lamento molestar otra vez pero tengo un pequeño problema que no he podido resolver.

Segun el siguiente codigo
Código Delphi [-]
procedure TForm1.btnAddNodeClick(Sender: TObject);
var
  nodo: TTreeNode;
begin
  Clase:= TClase.Create;
  ObjLst.Add(Clase);
  Clase.Nivel:= 'Nuevo nivel';
  Clase.Texto:= 'Nuevo texto';
  with tvCatalogo do
  begin
    Clase.Level:= TClase(Selected.Data).Level +
    StringOfChar('0', 2-Length(IntToStr(Selected.Level+1))) + IntToStr(Selected.Count + 1);  
    nodo:= Items.AddChildObject(Selected,Clase.Texto,Clase)
  end;
end;

me agrega perfectamente el nodo al arbol , pero si se borra un item del nodo, la propiedad count me estaria informando cuantos hay, pero no necesariamente el nivel que me toma es el ultimo.

ej. Si dentro de una rama tengo 9 items, el proximo seria el 10 y asi deberia crear el nuevo nodo para seguir la correlacion, pero si me borran el 5 y agrego otro mas , el count + 1, me sigue dando 9, el cual ya existe.

Como hago para obtener cual es el ultimo nivel de una rama , independientemente de que me borren n hijos en el medio ??

Espero haberme explicado.

Graciasssss

Saludoss
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Acceder al "data" de un treeview newtron OOP 25 02-06-2012 10:01:52
nodos y la propiedad data en un Treeview david_uh Varios 1 22-09-2007 00:12:31
Missing data provider or data packet mcalmanovici Providers 1 11-09-2007 05:55:15
Como Acceder a un Objeto de un TreeView!! Velia OOP 2 03-08-2007 17:51:37
Como utilizar el Treeview, desplegar la info del arbol binario al treeview leo21 OOP 1 08-04-2004 22:42:44


La franja horaria es GMT +2. Ahora son las 23:46:19.


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