Ver Mensaje Individual
  #3  
Antiguo 20-05-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Reputación: 21
mRoman Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Al final sólo debes recorrer los nodos del TreeView y para cada nodo crear un registro en la tabla que has adjuntodo.
¿Cual es el problema concretamente?
¿El recorrido del TreeView, guardarlo en la tabla?

Para recuperar lo contrario, realizar un recorrido por toda la tabla e ir creando los nodos en el TreeView.
Lo mismo de antes. ¿Cual es concretamente el problema? ¿Hacer el recorrido, crear los nodos en runtime?
Hola Neftalí gracias por contestar.

Si, esto es el problema:
Cita:
¿Hacer el recorrido, crear los nodos en runtime? /*DESDE EL DATASET*/
Y también esto otro:
Cita:
¿El recorrido del TreeView, guardarlo en la tabla?
Mi problema es este:
Cita:
me es complicado el manejo de TreeView, almacenarlo para después recuperarlo de la tabla, montarlo en el treeview y estando ahí, modificarlo si es necesario...(habilitar/deshabilitar).
(y luego grabarlo otra vez en la tabla)

No sé como hacerlo. No sé como implementar código para hacer esto. Mostrar las opciones tomándolas de un DATASET -ligado obviamente a una tabla con todas las opciones del menu-, estando éstas cargadas al TreeView seleccionar cuales si y cuales no serán visibles para el usuario, y luego grabar esta configuración en la TABLA para luego ser asignado a cualquier usuario...como permisos de acceso al menu del sistema.

Estoy tratando con el siguiente código (q lo tome de uno de los foros consultados) de implementarlo para lo que quiero, pero en realidad apenas lo estoy analizando...

Código Delphi [-]
procedure TfrmSegMenuNiv.CargarTreeView;
var
   i,x,n:integer;
   Nod : TTreeNode;
   NodSuplementario : TTreeNode;
   MiPunteroInteger : ^integer;
begin
    qryMenu.Close;
    qryMenu.Open;
    qryMenu.Last;
    n:=qryMenu.RecordCount;
    qryMenu.First;
    for x:=0 to (n-1) do
    begin
         i:=qryMenu.FieldByName('nodo_padre').AsInteger;
         if i=0 then
           begin
              Nod:=TreeView1.Items.Add (nil,qryMenu.FieldByName('opc_Descripcion').asstring);
              New(MiPunteroInteger);
              MiPunteroInteger^:=qryMenu.Fieldbyname('nodo').asinteger;
              nod.Data:=MiPunteroInteger;
              nod.Selected :=true;
           end
         Else
           begin
               n:=TreeView1.Items.Count-1;
               While MiPunteroInteger(TreeView1.Items[n].Data)^ <> i do
                  Dec(n);
               nodSuplementario:=TreeView1.Items.AddChild(TreeView1.Items[N],qryMenu.FieldByName('opc_Descripcion').asstring);
               New(MiPunteroInteger);
               MiPunteroInteger^:= qryMenu.Fieldbyname('nodo').asinteger;
               nodSuplementario.Data:=MiPunteroInteger;
               Nod.selected:=True;
               Nod.Expanded:=False;
            end;
         qryMenu.Next;
    end;
end;


Espero me puedas/puedan orientar.

MUCHAS GRACIAS !! por tu tiempo

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por Casimiro Notevi fecha: 20-05-2020 a las 18:21:13.
Responder Con Cita