Por fa, como crear menus dinámicos, con los items que un usuario tiene autorizados?
Hola, mi pregunta es como se pueden crear menús dinámicos en Delphi que permitan mostrar solo los items para los cuales el usuario está autorizado?
Como se puede manipular que item va a tener un TMainMenu? GRacias por la ayuda |
Un ejemplo de agregarle un TMenuItem a un TMenu, es este:
Donde Action1 es una accion que pertenece a un TActionManager (Si no sabes usar el TActionManager te recomiendo hacer una busqueda en los foros de la palabra TActionList o TActionManager y encontraras bastante informacion). El ejemplo que te he mostrado tendrtas que adaptarlo a tu necesidad. Espero te sirva ;). |
Sí, es mejor que trabajes con los actions.
pero porque no mejor los ocultas en vez de estarlos creando.
De esta forma, también se ocultarán los menús asociados a las acciones. también es recomendable que cambies la propiedad Enabled para que los comandos no se puedan ejecutar de ninguna forma. |
En la sección de ejemplos de esta página, hay uno totulado "Crear un menu de aplicación a partir de texto"; Está con el código fuente así que puedes ver cómo se crean los elementos de un menú a partir de una estructura de texto.
Lo que le faltaría en tu caso sería saber para un determinado usuarios, saber cuales de esos ítems deben crearse y cuales no; O crearlos todos y posteriormente ocultar algunos y otros no. |
Yo lo que hago es crear los menús, despues cargo los pribilejios de la BD y Muestro/oculto los que se necesiten
|
Cita:
Hola Ale Alvarez Tal vez este hilo te ayude un poquito. |
Yo lo que he hecho (hace mucho, así que no recuerdo los detalles) fue usar tres tablas:
usuario = (id, usuario, password, otros campos) procesos = (id, descripcion, otros campos) privilegios = (usuario_id, proceso_id) La tabla privilegios guarda una entrada por cada proceso al que tiene derecho un usuario. El id del proceso lo almaceno en la propiedad TAG del menuitem o action que de acceso al proceso correspondiente. Cuando se abre la aplicación, recorro el menú o el action list con un ciclo y busco el par (usuario, tag) en la tabla privilegios y muestro y/o habilito el item sólo si dicho par está en la tabla. // Saludos |
La franja horaria es GMT +2. Ahora son las 21:07:08. |
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