Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Una duda sobre Menus (https://www.clubdelphi.com/foros/showthread.php?t=19726)

JorgeBec 23-03-2005 17:27:52

Una duda sobre Menus
 
Hola! Mi pregunta es, como puedo hacer para saber la "coordenada" de un submenu, es decir, por ejemplo tengo lo siguiente:
Código:

Procesos              Seguridad
  Remisiones            Perfiles
  Facturas                Usuarios

Por ejemplo Facturas seria la 1.2 ó Usuarios será la 2.2, no se si me explique!

agradecere sus respuestas...

Lepe 23-03-2005 18:40:38

En principio, un menu tiene la propiedad items de tipo TmenuItems, tendrías que realizar una funcion (recursiva, por ejemplo) para recorrer todos los elementos, comprobar si tiene un submenú y llamar a esa rutina misma rutina para cada submenú. Con un simple contador puedes ir añadiendo el 1.3.2.5

Quizás sabiendo por qué quieres hacer eso haya otra solución.

Saludos

roman 23-03-2005 18:41:37

Desconozco si hay una forma directa de hacerlo pero puedes obtener las coordenadas a patir de la propiedad MenuIndex de un ítem y recorriendo el menú hacia arriba con la propiedad Parent.

Por ejemplo, la siguiente función te devuleve una cadena caon las "coordenadas" del ítem que le pases:

Código Delphi [-]
function MenuCoords(Item: TMenuItem): String;
var
  Parent: TMenuItem;

begin
  Result := IntToStr(Item.MenuIndex + 1);

  Parent := Item.Parent;
  while Parent.MenuIndex <> -1 do
  begin
    Result := IntToStr(Parent.MenuIndex + 1) + '.' + Result;
    Parent := Parent.Parent;
  end;
end;

En el evento OnClick de los ítemes del menú puedes usar la función así:

Código Delphi [-]
Capton := MenuCoords(Sender as TMenuItem);

// Saludos

JorgeBec 23-03-2005 18:50:56

Lo que estoy haciendo es un modulo de seguridad, basado en perfiles de usuario, la idea es que cuando configure un perfil, me traiga todos los items del menu, despues ir seleccionando a los items que ese perfil tiene acceso y grabarlos en una base de datos, despues a la hora que doy de alta un usuario asignarle un perfil y a la hora que este usuario entra al sistema solo dejar visibles los items de los menus a los que tiene acceso, no se si me explique???

agradecere su respuesta...

raulparraco 24-03-2005 02:46:06

En la siguiente direccion existe Software de punto de venta utiliza firebird/interbase y esta desarrollado en Delphi, donde se implanta use sistema de seguridad que te puede servir como guia

http://ventas.sourceforge.net/


La franja horaria es GMT +2. Ahora son las 16:47:03.

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