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

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 29-06-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
Cita:
Empezado por lbidi Ver Mensaje
En el caso que el usuario necesite crear mas nodos y subnodos al arbol, como puedo hacer
para ir grabando el "nivel" dentro del nodo, para asi luego grabarlo en la bd.? Me explico?

si tengo creados 2 niveles.

01 - Hombres
02 - Mujeres

y el usuario me crea un nivel dentro de hombres, quedaria

01 - Hombres
0101 - Pantalones <-- como saber que numero asignarle a este nivel? y los sucesivos?
02 - Mujeres
Hola Ibidi.

Bueno, en ese caso usando TStrings nos quedamos cortos...

Fijate si te sirve este ejemplo:
Código Delphi [-]
uses Contnrs;

type
  TClase = class(TObject)
   Nivel: string;
   Texto: string;
   Level: string;
  end;

var
 ObjLst: TObjectList;
 Clase: TClase;

procedure TForm1.FormCreate(Sender: TObject);
var
  nodo0,nodo1,nodo2,nodo3,nodo4: TTreeNode;
begin
  ObjLst:= TObjectList.Create;
  nodo0:= tvCatalogo.Items.AddFirst(nil, 'ARTICULOS');
  while not Qry_Cata.Eof do
  begin
    Clase:= TClase.Create;
    ObjLst.Add(Clase);
    Clase.Nivel:= Qry_Cata.FieldByName('Nivel').AsString;
    Clase.Texto:= Qry_Cata.FieldByName('Texto').AsString;
    Clase.Level:= '01';  { Aca iría el nivel a asignar }
    case Length(Clase.Nivel) of
      2: nodo1:= tvCatalogo.Items.AddChildObject(nodo0,Clase.Texto,Clase);
      4: nodo2:= tvCatalogo.Items.AddChildObject(nodo0,Clase.Texto,Clase);
      6: nodo3:= tvCatalogo.Items.AddChildObject(nodo0,Clase.Texto,Clase);
      8: nodo4:= tvCatalogo.Items.AddChildObject(nodo0,Clase.Texto,Clase);
    end;
    Qry_Cata.Next;
  end;
  tvCatalogo.FullExpand;
end;

procedure TForm1.btnAddNodeClick(Sender: TObject);
var
  nodo: TTreeNode;
begin
  Clase:= TClase.Create;
  ObjLst.Add(Clase);
  Clase.Nivel:= 'Nuevo valor nivel';
  Clase.Texto:= 'Nuevo valor texto';
  { Concatenar niveles ( 010203... ) }
  with tvCatalogo do
  begin
    Clase.Level:= TClase(Selected.Data).Level +
     StringOfChar('0', 2-Length(IntToStr(Selected.Level+1))) +
     IntToStr(Selected.Level+1);
    nodo:= Items.AddChildObject(Selected,Clase.Texto,Clase)
  end;
end;

procedure TForm1.tvCatalogoClick(Sender: TObject);
begin
   with tvCatalogo do
    if Assigned(Selected) and (Selected.Level > 0) then
      with TClase(Selected.Data) do
       Caption:=Format('Nivel: %s ~ Texto: %s ~ Level: %s',[Nivel,Texto,Level]);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   ObjLst.Free;
end;

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 30-06-2012 a las 01:09:48. Razón: Agregar comentario al código
Responder Con Cita
 


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 08:02:24.


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