Ver Mensaje Individual
  #3  
Antiguo 31-03-2013
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 mantraxer21.

Es muy vaga la descripción de la situación como para dar un ejemplo en concreto, pero agrego otra variante a las que ya te ha sugerido Nelson.
Código Delphi [-]
procedure MenuesLevelAccess(aForm: TForm; const UserLevel: Integer);
var
  i,j: Integer;
begin
  with aForm do
    for i:= 0 to ComponentCount-1 do
      if Components[i] is TMenuItem then
        with TMenuItem(Components[i]) do
          Enabled := Tag <= UserLevel;
end;

Ejemplo de uso:
Código Delphi [-]
  
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Asignar niveles de acceso (1 a 5 para el ej.)
  with MainMenu1 do
  begin
    with Items[0] do
    begin
      Items[0].Tag := 1; // menor acceso
      Items[1].Tag := 2;
      Items[2].Tag := 3;
      Items[3].Tag := 4;
      Items[4].Tag := 5; // mayor acceso
    end;
    {
    with Items[1] do
     ...
    end
    }
  end;

  with PopupMenu1 do
  begin
    Items[0].Tag:= 1;
    Items[1].Tag:= 2;
    Items[2].Tag:= 3;
    Items[3].Tag:= 4;
    Items[4].Tag:= 5;
  end;
  //...
  MenuesLevelAccess(Form1, 0); // no hay acceso sin registrarse
end;

...

//Ejemplo de llamada:
procedure TForm1.btnUserLogClick(Sender: TObject);
begin
  ... 
  MenuesLevelAccess(Form1, UserLevelAccess);
end;

Saludos.
__________________
Daniel Didriksen

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