Club Delphi  
    FTP   CCD     Enlaces   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


Respuesta
 
Herramientas Desplegado
  #21  
Antiguo 08-08-2012
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 247
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
  #22  
Antiguo 09-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 6.153
ecfisa Va camino a la fama
Hola Ibidi.

Si te has explicado perfectamente.

Código Delphi [-]
function ProxLevelCodigo(TV: TTreeView): string;
var
  v: Integer;
begin
  Result:= '';
  if TV.Selected.Count > 0 then
  begin
    Result := TClase(TV.Selected.Item[TV.Selected.Count-1].Data).Level;
    v:= StrToInt(Copy(Result, 3, MaxInt));
    Inc(v);
    Result:= Copy(Result,1,3)+IntToStr(v)
  end
end;

Ejemplo de llamada:
Código Delphi [-]
...
  Caption:= ProxLevelCodigo(tvCatalogo);
...
La función devuelve la cadena conformada por [level]+[ultimo_código_anterior+1] si el nodo actualmente seleccionado tiene algún hijo, o cadena vacía de lo contrario.

Saludos.
Responder Con Cita
  #23  
Antiguo 09-08-2012
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 247
lbidi Va por buen camino
Mil gracias ecfisa.

Anduvo de maravillas...

Saludosssss
Responder Con Cita
Respuesta


Herramientas
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 09:25:26.


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