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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-10-2007
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Habilitar elementos de un menu mediante treeview

Quiero que automáticamente se cargue un JvCheckTreeView con los elementos del menú de la aplicación y mediante la propiedad Checked de la lista se activen o desactiven los elementos del menú.

Espero haberlo explicado bien, un saludo y gracias.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #2  
Antiguo 02-10-2007
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Ya he conseguido cargar el árbol gracias a un ejemplo extraído de la pagina de neftali http://neftali.clubdelphi.com Ahora ya solo queda guardar los permisos de acceso a los menús en la base de datos y restaurarlos aplicando las propiedades enable o visible (aun no lo he decidido), a los elementos del menú.

Por si alguien no se ha dado cuenta es para restringir el acceso a partes del sistema a los diferentes tipos de usuarios.

Neftali el ejemplo funciona de lujo, pero he mejorado el procedimiento VerificarMenu añadiéndole la función Stripped extraída de trucomania, el código queda así:
Código Delphi [-]
  procedure VerificaMenu(Menu: TMenuItem; Nod: TTreeNode);
    function stripped(stripchar : char; str : string) : string;
      var
        tmpstr : string;
    begin
      tmpstr := str;
      while pos(stripchar, tmpstr) > 0 do
        delete(tmpstr, pos(stripchar, tmpstr), 1);
      stripped := tmpstr;
    end;

  Var
    i: Integer;
    Nodo: TTreeNode;
  Begin
    // Para cada elemento del menu
    for i:= 0 To (Menu.Count - 1) Do Begin
      // Es un elemento correcto
      If Not(Menu.Parent Is TMenuItem) then begin
          // Crear el elemento  asignarle el índice de la imagen
          Nodo:= TreeView1.Items.Add(Nil, Stripped('&', Menu.Items[i].Caption));
          Nodo.ImageIndex := Menu.Items[i].ImageIndex;
      End
      Else begin
        // Crear un hijo
        Nodo:= TreeView1.Items.AddChild(Nod, Stripped('&', Menu.Items[i].Caption));
        Nodo.ImageIndex := Menu.Items[i].ImageIndex;
      end;

      // Llamada recursiva para los submenus
      If Menu.Items[i].Count > 0 Then begin
        VerificaMenu(Menu.Items[i], Nodo);
      end;
    End;
  End;
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5

Última edición por Durbed fecha: 02-10-2007 a las 20:35:08.
Responder Con Cita
  #3  
Antiguo 03-10-2007
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Ahora necesito vincular los elementos del TreeView* con los elementos del menú, para así poder guardar los datos referentes a los permisos en un StringList que luego almacenare en la base de datos. Es decir que al picar sobre el primer nodo sepa que se corresponde con el elemento "Archivo1" del menú y me añada una linea al StringList de esta forma: "Archivo1=S"

Posteriormente desde la pantalla de permisos y picando sobre cada usuario se tiene que poder recuperar la información para rellenar el TreeView*.

La idea es que sea algo que se genere automáticamente a partir del menú porque si en el futuro voy añadiendo módulos al programa, no quisiera tener que retocar la parte de los permisos.

A ver si algún preclaro de los que rondan por el foro me puede ayudar. Un saludo y gracias.



* Realmente uso el componente JVCheckTreeView que añade la propiedad checked a los nodos del TreeView y hereda de TreeView.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
Respuesta



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
Imagen o texto sobre el menu / menu con align / menu movible dajaji Varios 12 21-09-2007 00:30:19
Manejo de menu en treeview, controlando que las formas al abrir no se sobrepongan Ale Alvarez OOP 2 12-09-2007 13:25:09
Es posible habilitar la red de area local mediante comandos en windows xp? Ricardo León Windows 1 16-08-2007 21:07:44
Como utilizar el Treeview, desplegar la info del arbol binario al treeview leo21 OOP 1 08-04-2004 22:42:44
TreeView y Menu Kompac Varios 3 03-12-2003 18:02:15


La franja horaria es GMT +2. Ahora son las 18:25:46.


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