Ver Mensaje Individual
  #13  
Antiguo 18-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Lo de modificar los fuentes de Delphi no lo veo viable.

1 - No sé si será legal eso de modificar el menu.pas.
2 - No aseguras compatibilidad con programas que ya funcionen.

Lo que se me ocurre es crearte tu nueva unidad PrivMenu.pas pegando todo el contenido de la unidad de delphi (repito, no sé si legalmente puedes hacer eso), renombrando las clases a TPrivMenu, TPrivMenuItem, etc.

A partir de aquí ya eres "libre" . Después podrás instalar el componente como uno más de delphi.

Con un TActionList, no tendrías que reinventar nada. Cada TAction tiene su propiedad Tag y ahí puedes guardar el nivel de privilegios que haría falta para mostrar ese TAction, Con un simple bucle puedes recorrer todos los TActions inhabilitándolos, hacerlos invisible, etc.
Código Delphi [-]
  for i:= 0 to actionlist1.count -1 do
  actionlist1.Actions[i].Visible := actionlist1[i].tag <= PrivilegioDelUsuario

Si en cada ventana existen controles que puedan ser invisibles para ciertos usuarios, yo añadiría herencia visual, es decir crear un formulario en blanco que contenga un ActionList y una propiedad Privilegio:integer, Al asignar el Privilegio haría lo propio con los Actions que haya en la ventana.

Habrá otras muchas formas de implementar privilegios, pero dependerá de tus necesidades.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita