Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Checkbox en opciones del Menu (https://www.clubdelphi.com/foros/showthread.php?t=90186)

mRoman 22-04-2016 00:21:14

Checkbox en opciones del Menu
 
Hola buenas tardes.

Trabajo con : Delphi 6, Win 7, Firebird 2.0

Les comento que estoy tratando de implementar un modulo de configuración donde se pueda seleccionar las opciones del menu principal asi como sus subopciones y hasta el ultimo nivel de opciones que pueda tener el menu. Lo anterior en base al puesto del usuario.

Ya tengo implementado una tabla MENU y MENU_ITEM. los campos para la tabla MENU son los siguientes:
ID_MENU
MENU_DESCRIPCION

En esta tabla almaceno los tipos de menu: MENU DBA, MENU DE CAPTURISTA, MENU JEFE DEPTO, ETC.

Para MENU_ITEMS
ID_MENU
ID_ITEM
ITEM_DESCRIPCION
HABILITADO

En esta ultima tabla tengo almacenado las opciones y subopciones del menu a las cuales tiene permitido accesar. Ya he logrado que al conectarse habilite o deshabilite las opciones en base al campo "HABILITADO".

Pero ahora quiero ver como modificar las opciones de los menus almacenados en MENU_ITEMS, para activar o desactivar (habilitar/deshabilitar) pero de una manera mas ELEGANTE.

¿Se podrá poner en cada Item del Menu un checkbox o algo similiar, que me permita seleccionar el item que quiero este habilitado y después almacenar esta configuración para cuando se conecten todos los usuarios con ese tipo de menu, solo HABILITE esas opciones????.

He buscado hilos en este foro, he encontrado algo, lo cual he implementado, incluso lo he hecho con un TreeView pero no me gusta mucho, me gustaria mejor mostrar UNA COPIA del componente TMainMenu en otro formulario y ahi agregar el checkbox y hacer ahi lo que ya les comenté.

TAMBIEN SE ACEPTAN SUGERENCIAS !!

Espero haberme explicado y si no, me comentan.

SALUDOS !!

ecfisa 22-04-2016 21:49:12

Hola.

No sé si es lo que estas buscando, pero la clase TMenuItem tiene la propiedad Checked que precisamente permite que aparezca una marca de verificación al lado del Caption.

Ejemplo:
Código Delphi [-]
// marcar/desmarcar
procedure TForm1.MenuItemClick(Sender: TObject);
var
  mi : TMenuItem;
begin
  mi := TMenuItem(Sender);
  mi.Checked := not mi.Checked;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i, j: Integer;
begin
  for i := 0 to MainMenu1.Items.Count-1  do
    // inicializar Checked / asignar evento
    for j := 0 to MainMenu1.Items[i].Count - 1 do
    begin
      MainMenu1.Items[i].Items[j].Checked := False;
      MainMenu1.Items[i].Items[j].OnClick := MenuItemClick;
    end;
end;

Saludos :)

mRoman 25-04-2016 07:01:36

Gracias
 
Gracias ecfisa por contestar.

Lo probaré y les comento como me fue....Gracias nuevamente.


La franja horaria es GMT +2. Ahora son las 22:18:40.

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