Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-11-2011
setq setq is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 6
Poder: 0
setq Va por buen camino
TTreeNode, que estoy haciendo mal

Hola, primero decir que como vengo del mundo del java aun se me siguen trabando algunas cosas de Delphi que hacia algunos años que no tocaba.

Tengo una clase TForm con un TTreeView y una clase digamos B, que recibe en el constructor el TTreeNodes del TTreeview, extrae y guarda el primer nodo del TTreeView en la variable Normas que es de tipo TTreeNode. Posteriormente se usara para poder recorrer los nodos del TTreeView desde dentro de B sin necesitar conocer el TTreeView. La intencion final es mantener la vista separada de la capa negocio, al menos esa es mi idea.

Cuando intento recorrer el arbol del TTreeView en la clase B gracias a la variable Normas que apunta a su primer nodo, obtengo datos extraños que no son los de los nodos del arbol, que se muestra correctamente en el Form con sus datos.
El nodo Normas parece apuntar a un unico nodo que contiene el valor '' y que no tiene ni hijos ni hermanos, cuando deberia apuntar a un arbol con muchos nodos y datos diferentes.
No es que haya ningun error de compilacion ni en tiempo de ejecucion, simplemente algo hay mal hecho que no alcanzo a ver pero que no hace romper al programa.

Es Delphi 2010.

Ahi les dejo el codigo con algunos comentarios a ver si alguien ve algo porque yo ya estoy mareado de tanto mirarlo, y seguro que una linea vale mas que mil palabras.

Y muchas gracias por el tiempo.


Código Delphi [-]
unit B;

type
    B = class
        Normas: TTreeNode;


        constructor Create(headNormas: TTreeNodes);
        destructor Destroy;override;
        ...

implementation

constructor B.Create(headNormas: TTreeNodes);
    begin
    Normas:=TTreeNode.Create(headNormas);
    end;
end;


---------------------------------------------------------------------


unit SDIMAIN;

type
  TSDIAppForm = class(TForm)

     treeNormas: TTreeView;
     ...
     procedure CargarTree;
     ...
     private
        FRL:B;
  end;

implementation

procedure TSDIAppForm.CargarTree;
     ...
     treeNormas.LoadFromFile(name);
     FRL:=B.Create(treeNormas.Items);
     ...

function TInterpreteFRL.getNorma(nombreNorma: String): TTreeNode;
    var
        nodo: TTreeNode;
    begin
    nodo := Normas; <<<<<<<< AQUI ES DONDE CARGA EL VALOR EXTRAÑO ''
    while (nodo <> NIL) and (nodo.Text <> nombreNorma) do
        nodo := nodo.GetNextSibling;
    getNorma := nodo;
    end;

Última edición por ecfisa fecha: 19-11-2011 a las 06:37:52.
Responder Con Cita
 



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
Que estoy haciendo mal ? piolillo Internet 8 28-07-2011 17:23:24
Que estoy haciendo mal José Luis Garcí Varios 6 24-05-2011 18:45:58
Que estoy haciendo Mal esimon SQL 4 04-07-2006 21:55:25
Que estoy Haciendo mal jostrix PHP 1 01-11-2004 01:29:16


La franja horaria es GMT +2. Ahora son las 07:12:25.


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