Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 31-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 25
Caro Va por buen camino
Hola de nuevo, solo unas pequeñas observaciones sobre el codigo del amiguito coso. Si recorremos los componentes de Application, lo que obtenemos son los fomularios y no los componentes del formulario actual, y en esta parte "Application.Components[i].Enabled" falta un Cast.

El codigo quedaría así:

Código Delphi [-]
for i := 0 to ComponentCount - 1 do
 begin
  if (Components[i] is TMenuItem) then
   TMenuItem(Components[i]).Enabled := StrToInt(Edit1.Text) < 2;
 end;

Pero con la condición o te habilita todos o te deshabilita todos.

Lo que se me ocurre, sino es solo un MenuItem el que tienes que deshabilitar según el nivel de usurio, es que utilices la propiedad Tag de cada MenuItem, por ejemplo tenemos esto.

Código:
Opcion1(0)     Opcion2(1)     Opcion3(2)
  Opcion11(1)    Opcion21(1)    Opcion31(2)
  Opcion12(2)    Opcion22(1)
  Opcion13(2)
donde el numero entre corchetes sería el numero de Tag que le estarías dando a tu MenuItem, que pueden presentar 3 opciones, en la primera columna la Opcion11 pertenece al nivel 1 la Opcion21 y Opcion22 pertenecen al nivel 2, como se tiene tanto del nivel 1 como del nivel 2 entonces le ponemos al principal con Tag 0, y en las otras opciones como todo pertenece tanto al nivel 1 como al nivel 2 en el principal le ponemos su correspndiente nivel. Talvez no se entiende lo que trato de decir, conste que no soy buena para explicar.

El codigo quedaría así.

Código Delphi [-]
for i := 0 to ComponentCount - 1 do
 begin
  if (Components[i] is TMenuItem) then
   begin
    if (TMenuItem(Components[i]).Tag=StrToInt(nivel)) or (TMenuItem(Components[i]).Tag=0) then
     TMenuItem(Components[i]).Visible := True
    else
      TMenuItem(Components[i]).Visible := False;
   end;
ejemplo
 end;

Utilizo Visible, porque creo que sería mejor no mostrale la opción si no tiene acceso a la misma.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
 



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
DBGrid con posibilidad de agrupar en niveles... Neftali [Germán.Estévez] OOP 3 29-11-2004 00:58:42
programa por niveles marcelofabiani Varios 2 21-10-2003 18:27:17
Niveles de Acceso/ UTECYBER Varios 5 07-10-2003 20:56:23
Niveles de Acceso/ UTECYBER OOP 5 07-10-2003 20:53:18
niveles en programas marcelofabiani Varios 1 10-05-2003 22:30:15


La franja horaria es GMT +2. Ahora son las 19:36:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi