Ver Mensaje Individual
  #6  
Antiguo 12-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola webmasterplc.

Una opción es que le asignes niveles a cada categoría de usuario, por ejemplo: Administrador 3, Jefe 2, Operario 1 y luego habilites o no los items de acuerdo al valor asignado en la propiedad Tag de cada TMenuItem.

Para ejemplificar, pone un TMainMenu con el siguiente formato y valores de Tag en sus subitems:
Código:
Menu1           Menu2  
----------------------------
Item1 ,Tag:1    Item1 ,Tag:1
Item2 ,Tag:2    Item2 ,Tag:2
Item3 ,Tag:3    Item3 ,Tag:3
En este ejemplo simple, selecciono el tipo de usuario desde un TComboBox y habilito/desabilito los subitems de acuerdo al nivel de usuario:
Código Delphi [-]
...
procedure TForm1.FormCreate(Sender: TObject);
var
  i,j: Integer;
begin
  ComBoBox1.Items.AddObject('Administrador',TObject(3));
  ComboBox1.Items.AddObject('Jefe',TObject(2));
  ComboBox1.Items.AddObject('Operario',TObject(1));
  // Todos los subitems deshabilitados al comenzar
  with MainMenu1 do
    for i:= 0 to Items.Count-1 do
      if Items[i].Count-1 > 0 then
        for j:= 0 to Items[i].Count-1 do
          Items[i].Items[j].Enabled:= False;
end;

// Habilitar subitems acorde al nivel de acceso del usuario
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  LvlAcceso: Integer;
  i,j: Integer;
begin
  LvlAcceso := Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
  with MainMenu1 do
    for i:= 0 to Items.Count-1 do
      if Items[i].Count-1 > 0 then
        for j:= 0 to Items[i].Count-1 do
          Items[i].Items[j].Enabled:= LvlAcceso >= Items[i].Items[j].Tag 
end;
Logicamente en tu caso los datos del usuario deberán estar almacenado en alguna tabla de alguna BD.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita