Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 12-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Es posible que en el Form1 sea reconocido algún componente del mismo. mrnovice OOP 2 08-07-2008 19:43:52
TmainMenu no en top del form jonmendi OOP 1 14-04-2008 17:19:53
¿ Es posible realizar una inserción sin tener una transaccion abierta ? TrUnkS Conexión con bases de datos 1 03-02-2007 02:10:34
Es posible al mismo tiempo Sum(...), Group y Join ? gluglu SQL 1 29-12-2005 15:22:57
Es posible tener varias bases de datos.... Carlosguiland MySQL 5 24-06-2004 20:39:10


La franja horaria es GMT +2. Ahora son las 22:50:14.


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