Ver Mensaje Individual
  #1  
Antiguo 21-06-2012
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Reputación: 21
lbidi Va por buen camino
Unhappy Acceder al data de un treeview

Estimados todos.

He revisado varios hilos sobre este tema pero no he logrado hacer que funcione.

Tengo un query que lee de una base que tiene 2 campos, nivel y texto, es un catalogo de ropa
en la cual el nivel indicaria el nodo del arbol y texto , el contenido.

ej :

01 HOMBRES
0101 PANTALONES
010101 CUERO
02 MUJER
0201 VESTIDOS

etc,
etc

El codigo que tengo para leer esto es el siguiente.

Código Delphi [-]
var
    nodo0, nodo1, nodo2, nodo3, nodo4 : TTreeNode;
    n : Integer;

begin
    nodo0 := tv_Catalogo.Items.AddFirst( nil, 'ARTICULOS' );

    Qry_Cata.SQL.Clear;
    Qry_Cata.SQL.Add('Select * from Catalogo');
    Qry_Cata.SQL.Add('Order by Nivel');
    Qry_Cata.Open;
    while not Qry_Cata.Eof do
    begin
        n := Length( Qry_Cata.FieldByName('Nivel').AsString ) ) ;
        case n of
            2 :
            begin
                nodo1      := tv_Catalogo.Items.AddChild( nodo0, Qry_Cata['Texto'] );
                nodo1.Data := Pointer( Qry_Cata.FieldByName('Nivel').AsString);
                nodo1.MakeVisible;
            end;
            4 :
            begin
                nodo2      := tv_Catalogo.Items.AddChild( nodo1, Qry_Cata['Texto'] );
                nodo2.Data := Pointer( Qry_Cata.FieldByName('Nivel').AsString);
                nodo2.MakeVisible;
            end;
            6 :
            begin
                nodo3      := tv_Catalogo.Items.AddChild( nodo2, Qry_Cata['Texto'] );
                nodo3.Data := Pointer( Qry_Cata.FieldByName('Nivel').AsString);
                nodo3.MakeVisible;
            end;
            8 :
            begin
                nodo4      := tv_Catalogo.Items.AddChild( nodo3, Qry_Cata['Texto'] );
                nodo4.Data := Pointer( Qry_Cata.FieldByName('Nivel').AsString);
                nodo4.MakeVisible;
            end;
        end;
        Qry_Cata.Next;
    end;

Funciona bien y arma perfectamente el arbol.

Lo que necesito hacer luego es volver a grabar el arbol en la base de datos, por las modificaciones que pudo haber tenido.

Como hago para obtener el valor "nivel" almacenado en la propiedad data del nodo ?

Gracias.
Responder Con Cita